package com.red.circle.wallet.domain.gateway;

import com.red.circle.wallet.domain.wallet.DiamondReceipt;
import com.red.circle.wallet.domain.wallet.WalletReceiptHistory;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 钱包 - 钻石.
 *
 * @author pengliang on 2021/8/20
 */
public interface WalletDiamondGateway {

  /**
   * 用户钱包钻石余额.
   *
   * @param userId 用户id
   * @return 钱包
   */
  BigDecimal getBalance(Long userId);

  /**
   * 改变钻石余额.
   *
   * @param diamondReceipt 单据
   * @return 余额
   */
  WalletReceiptHistory changeBalance(DiamondReceipt diamondReceipt);

  /**
   * 钻石余额.
   * @param userIds 用户id
   */
  Map<Long, BigDecimal> mapBalance(List<Long> userIds);

  /**
   * 公司钻石余额.
   * @param userIds 用户id
   */
  Map<Long, BigDecimal> salaryMapBalance(List<Long> userIds);
}
