package com.red.circle.wallet.infra.database.mongo.service.bank;


import com.red.circle.wallet.infra.database.mongo.entity.bank.UserBankWithdrawMoneyApply;
import com.red.circle.wallet.inner.model.cmd.UserBankApprovalMoneyApplyCmd;
import com.red.circle.wallet.inner.model.cmd.UserBankWithdrawMoneyApplyQryCmd;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 用户银行卡提现申请记录.
 *
 * @author pengliang on 2023/2/15
 */
public interface UserBankWithdrawMoneyApplyService {

  /**
   * 添加申请.
   */
  void add(UserBankWithdrawMoneyApply apply);

  @Deprecated
  void updateBankCard(Long id, String bankCard);

  @Deprecated
  List<UserBankWithdrawMoneyApply> listAll();

  /**
   * 获取一组指定的申请信息.
   */
  Map<Long, UserBankWithdrawMoneyApply> mapByIds(Set<Long> ids);

  /**
   * 用户银行卡提现申请记录.
   */
  List<UserBankWithdrawMoneyApply> listBankWithdrawMoneyApply(
      UserBankWithdrawMoneyApplyQryCmd query);

  /**
   * 获得记录.
   */
  UserBankWithdrawMoneyApply getById(Long id);

  /**
   * 审核申请记录.
   */
  void approvalMoneyApply(UserBankApprovalMoneyApplyCmd apply);

}
