package com.clx.performance.struct.loan;

import com.clx.performance.dto.OwnerLoanAccountRunWaterRecordDTO;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.vo.pc.loan.owner.OwnerLoanRunWaterRecordVO;
import com.msl.common.utils.DateStructUtil;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

import java.util.List;
import java.util.Objects;

@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {Objects.class})
public interface OwnerLoanAccountRunningWaterRecordStruct {

    List<OwnerLoanRunWaterRecordVO> convertList(List<OwnerLoanAccountRunningWaterRecord> list);


//    @Mapping(target = "runningWaterTypeMsg", source = "java(OwnerLoanAccountRunWaterRecordEnum.RunWaterType.getMsgByCode(record.getRunningWaterType()))")
    @Mapping(target = "alterationBalance", expression = "java(Objects.isNull(record.getAlterationBalance())? null : record.getAlterationBalance().movePointLeft(2))")
    @Mapping(target = "accountBalance", expression = "java(Objects.isNull(record.getAccountBalance())? null : record.getAccountBalance().movePointLeft(2))")
    OwnerLoanAccountRunWaterRecordDTO convertDTO(OwnerLoanAccountRunningWaterRecord record);


    List<OwnerLoanAccountRunWaterRecordDTO> convertDTOList(List<OwnerLoanAccountRunningWaterRecord> list);

}
