package com.crm.pay.service;

import com.crm.rely.backend.core.dto.base.BaseResultDto;
import com.crm.rely.backend.core.exception.ServiceException;
import com.crm.rely.backend.model.dto.sys.remittance.channel.bank.SysChannelBankByChannelCodeDto;
import com.crm.rely.backend.model.dto.sys.remittance.channel.bank.SysChannelBankDto;
import com.crm.rely.backend.model.entity.sys.remittance.channel.bank.SysChannelBankByChannelCodeListEntity;
import com.crm.rely.backend.model.entity.sys.remittance.channel.bank.SysChannelBankByCodeEntity;
import com.crm.rely.backend.model.entity.sys.remittance.channel.bank.SysChannelBankSaveEntity;
import com.crm.rely.backend.model.pojo.table.SysChannelBankTable;

import java.util.List;

public interface SysChannelBankService {

    /**
     * 根据条件拉去所有通道银行(货币类型)列表
     *
     * @param entity
     * @return
     * @throws Exception
     */
    BaseResultDto<List<SysChannelBankByChannelCodeDto>> getAllByChannelCode(SysChannelBankByChannelCodeListEntity entity) throws Exception;

    /**
     * 根据条件拉去单个通道银行(货币类型)信息
     *
     * @param entity
     * @return
     * @throws Exception
     */
    BaseResultDto<SysChannelBankByChannelCodeDto> getByCode(SysChannelBankByCodeEntity entity) throws Exception;

    SysChannelBankTable getByCode(String code, String channelCode);

    void save(String channelCode, List<SysChannelBankSaveEntity> entities) throws ServiceException;

    List<SysChannelBankDto> getByChannelCode(String channelCode) throws ServiceException;

    List<SysChannelBankDto> getByChannelCode(String channelCode, Integer valid) throws ServiceException;

    List<SysChannelBankDto> getByChannelCodeAndBankCodes(String channelCode, List<String> codes, Integer valid) throws ServiceException;

    List<SysChannelBankDto> getByChannelCodes(List<String> channelCodes) throws ServiceException;

    void deleteByChannelCodes(List<String> channelCodes) throws ServiceException;
}
