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

import com.red.circle.console.app.dto.clienobject.user.UserBankCardCO;
import com.red.circle.console.app.dto.clienobject.user.UserBankIdentityInfoCO;
import com.red.circle.console.app.dto.clienobject.user.UserWithdrawInfoCO;
import com.red.circle.framework.core.convertor.ConvertorModel;
import com.red.circle.other.inner.model.dto.user.UserBankIdentityInfoDTO;
import com.red.circle.wallet.inner.model.cmd.UserBankWithdrawMoneyApplyExportQryCmd;
import com.red.circle.wallet.inner.model.cmd.UserBankWithdrawMoneyApplyQryCmd;
import com.red.circle.wallet.inner.model.dto.UserBankCardDTO;
import com.red.circle.wallet.inner.model.dto.UserWithdrawInfoDTO;
import java.util.List;
import org.mapstruct.Mapper;

/**
 * @author pengliang on 2023/5/12
 */
@Mapper(componentModel = ConvertorModel.SPRING)
public interface BankAppConvertor {

  UserBankWithdrawMoneyApplyQryCmd toUserBankWithdrawMoneyApplyQryCmd(
      UserBankWithdrawMoneyApplyExportQryCmd cmd);

  List<UserBankCardCO> toListUserBankCardCO(List<UserBankCardDTO> dtos);

  UserBankCardCO toUserBankCardCO(UserBankCardDTO dto);

  UserBankIdentityInfoCO toUserBankIdentityInfoCO(UserBankIdentityInfoDTO dto);

  List<UserWithdrawInfoCO> toListUserWithdrawInfoCO(List<UserWithdrawInfoDTO> dtos);

  UserWithdrawInfoCO toUserWithdrawInfoCO(UserWithdrawInfoDTO dto);
}
