package com.jwipc.finance.convert;

import com.jwipc.finance.dto.*;
import com.jwipc.finance.entity.InvoicedApplyPa;
import com.jwipc.finance.entity.PaymentAdvanceApply;
import com.jwipc.finance.entity.PaymentAdvanceApplyDetail;
import com.jwipc.finance.entity.PaymentCodApply;
import com.jwipc.finance.model.po.*;
import org.mapstruct.Mapper;

import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author wt
 * @version 1.0
 * @since 2024/3/8
 */
@Mapper(componentModel = "spring")
public interface PaymentAdvanceApplyConvert {
    List<PaymentAdvanceApplyBaseDTO> POToDTOList(List<PaymentAdvanceApply> poList);

    PaymentAdvanceApplyListDTO entityToDto(PaymentAdvanceApply advanceApply);

    List<CreatePaaDetailDto> POToDtoDetailList(List<CreatePaaDetailPO> paaDetailList);

    List<PaymentRecordDTO> poToDtoRecordList(List<PaymentRecordPO> poList);

    PaymentAdvanceApply dtoToEntity(PaymentAdvanceApplyBaseDTO toPaaDetail);

    PaymentAdvanceApplyDetail dtoToEntityDetail(PaymentAdvanceApplyDetailBaseDTO toPaaDetail);

    PaymentAdvanceApplyListDTO poToDto(PaymentAdvanceApplyPO advanceApply);

    List<InvoicedApplyPaDTO> invoicedApplyPaPO2DTOList(List<InvoicedApplyPaPO> invoicedApplyPaPOS);

    List<InvoicedApplyPa> invoicedApplyPaPO2List(List<InvoicedApplyPaDTO> invoicedApplyPaPOS);

    PaymentAdvanceApply importDTO2Entity(PaymentAdvanceApplyImportDTO paymentAdvanceApplyImportDTO);

    PaymentAdvanceApplyDetail importDTO2DetailEntity(PaymentAdvanceApplyImportDTO paymentAdvanceApplyImportDTO);

    List<PaymentAdvanceRefundTransferApplyAndDetailListDTO> paaPOToDTOList(List<PaymentAdvanceRefundTransferApplyPO> poList);

}
