package com.red.circle.console.app.convertor.team;

import com.red.circle.console.app.dto.clienobject.team.TeamApplicationProcessApprovalCO;
import com.red.circle.console.app.dto.clienobject.team.TeamApplicationProcessCO;
import com.red.circle.console.app.dto.clienobject.team.TeamBillCycleCO;
import com.red.circle.console.app.dto.clienobject.team.TeamExchangeTargetCO;
import com.red.circle.console.app.dto.clienobject.team.TeamMemberWorkCO;
import com.red.circle.console.app.dto.clienobject.team.TeamNoticeCO;
import com.red.circle.console.app.dto.clienobject.team.TeamPolicyManagerCO;
import com.red.circle.console.app.dto.clienobject.team.TeamSalaryCO;
import com.red.circle.console.app.dto.clienobject.team.TeamSalaryDetailsCO;
import com.red.circle.console.app.excel.model.TeamBillAnchorStatisticsModel;
import com.red.circle.framework.core.convertor.ConvertorModel;
import com.red.circle.other.inner.model.cmd.team.TeamApplicationProcessChangeCmd;
import com.red.circle.other.inner.model.cmd.team.TeamApplicationProcessQryCmd;
import com.red.circle.other.inner.model.cmd.team.TeamProcessBackQryCmd;
import com.red.circle.other.inner.model.cmd.team.TeamProcessChangeBackCmd;
import com.red.circle.other.inner.model.dto.agency.agency.TeamApplicationProcessApprovalDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamApplicationProcessDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamBillAnchorStatisticsModelDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamBillCycleDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamContact;
import com.red.circle.other.inner.model.dto.agency.agency.TeamContactDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamExchangeSurplusTargetDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamMemberWorkDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamNoticeDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamPolicyManagerDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamRemark;
import com.red.circle.other.inner.model.dto.agency.agency.TeamRemarkDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamSalaryPaymentDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamSalaryPaymentDetailsDTO;
import java.util.List;
import org.mapstruct.Mapper;

/**
 * @author zongpubin on 2023/10/12
 */
@Mapper(componentModel = ConvertorModel.SPRING)
public interface TeamAppConvertor {

  TeamApplicationProcessApprovalCO toTeamApplicationProcessApprovalCO(
      TeamApplicationProcessApprovalDTO dto);

  TeamApplicationProcessCO toTeamApplicationProcessCO(TeamApplicationProcessDTO dto);

  TeamApplicationProcessQryCmd toTeamApplicationProcessQryCmd(TeamProcessBackQryCmd cmd);

  TeamApplicationProcessChangeCmd toTeamApplicationProcessChangeCmd(TeamProcessChangeBackCmd cmd);

  List<TeamBillCycleCO> toListTeamBillCycleCO(List<TeamBillCycleDTO> list);

  TeamRemarkDTO toTeamRemarkDTO(TeamRemark teamRemark);

  TeamExchangeTargetCO toTeamExchangeTargetCO(TeamExchangeSurplusTargetDTO dto);

  List<TeamBillAnchorStatisticsModel> toTeamBillAnchorStatisticsModels(
      List<TeamBillAnchorStatisticsModelDTO> list);

  TeamContactDTO toTeamContactDTO(TeamContact teamContact);

  TeamMemberWorkCO toTeamMemberWorkCO(TeamMemberWorkDTO dto);

  TeamNoticeCO toTeamNoticeCO(TeamNoticeDTO dto);

  TeamPolicyManagerCO toTeamPolicyManagerCO(TeamPolicyManagerDTO dto);

  TeamSalaryCO toTeamSalaryCO(TeamSalaryPaymentDTO dto);

  TeamSalaryDetailsCO toTeamSalaryDetailsCO(TeamSalaryPaymentDetailsDTO dto);
}
