package com.yn.bftl.thirdparty.modules.chinaums.service;

import com.yn.bftl.common.modules.company.enums.ChinaumsBankCardStatus;
import com.yn.bftl.thirdparty.modules.chinaums.dto.BankCardAmountValidateDTO;
import com.yn.bftl.thirdparty.modules.chinaums.dto.chinaums.ChinaumsAddBankCardDTO;
import com.yn.bftl.thirdparty.modules.chinaums.vo.ChinaumsBankCardDetailVO;
import com.yn.bftl.thirdparty.modules.chinaums.vo.ChinaumsBankCardVO;

import javax.validation.Valid;
import java.util.List;

/**
 * 银联银行卡服务
 *
 * @author huabiao
 * @create 2023/2/15  14:59
 **/
public interface BankCardService {

    /**
     * 银联银行卡-列表
     *
     * @param status 银行卡状态
     * @return
     * @description
     * @author yuweibin
     */
    List<ChinaumsBankCardVO> bankCardList(ChinaumsBankCardStatus status);

    /**
     * 银联银行卡-添加
     *
     * @param byxChinaumsAcctBindBankCardDTO 银联添加银行卡DTO
     * @author huabiao
     * @create 2023/2/15  15:58
     */
    void addBankCard(@Valid ChinaumsAddBankCardDTO byxChinaumsAcctBindBankCardDTO);

    /**
     * 银联银行卡-删除
     *
     * @param id 银行卡ID
     * @return true：删除成功；false：删除失败
     * @author huabiao
     * @create 2023/2/20  10:29L
     */
    Boolean deleteBankCard(Long id);

    /**
     * 银联银行卡-打款验证
     *
     * @param bankCardAmountValidateDTO 银行卡金额验证DTO
     * @return true：验证成功；false：验证失败
     * @author huabiao
     * @create 2023/2/21  17:24
     */
    Boolean amountValidate(BankCardAmountValidateDTO bankCardAmountValidateDTO);

    /**
     * 银联银行卡-详情
     *
     * @param id 银联银行卡ID
     * @return 银联银行卡
     * @author huabiao
     * @create 2023/2/22  19:41
     */
    ChinaumsBankCardDetailVO getBankCardDetail(Long id);
}
