package com.red.circle.console.app.service.app.user;

import com.red.circle.console.app.dto.clienobject.user.UserSalaryDiamondBalanceCO;
import com.red.circle.console.app.dto.clienobject.user.UserSalaryDiamondRunningWaterCO;
import com.red.circle.framework.dto.PageResult;
import com.red.circle.wallet.inner.model.cmd.UserSalaryDiamondBalanceQryCmd;
import com.red.circle.wallet.inner.model.cmd.UserSalaryDiamondCmd;
import com.red.circle.wallet.inner.model.cmd.UserSalaryDiamondRunningWaterQryCmd;
import com.red.circle.wallet.inner.model.cmd.UserSalaryDiamondTransferCmd;
import java.util.List;

/**
 * 用户工资钻石
 *
 * @author zongpubin on 2024/3/13
 */
public interface UserSalaryDiamondService {

  /**
   * 用户工资钻石列表.
   */
  PageResult<UserSalaryDiamondBalanceCO> listUserSalaryDiamondBalance(
      UserSalaryDiamondBalanceQryCmd query);

  /**
   * 创建用户工资钻石账户.
   */
  void createSalaryDiamondBalance(UserSalaryDiamondCmd param);

  /**
   * 发送用户工资钻石.
   */
  void sendSalaryDiamond(UserSalaryDiamondCmd param);

  /**
   * 扣除用户工资钻石.
   */
  void deductSalaryDiamond(UserSalaryDiamondCmd param);

  /**
   * 用户工资钻石转账.
   */
  void transferSalaryDiamond(UserSalaryDiamondTransferCmd param);

  /**
   * 用户工资钻石流水.
   */
  PageResult<UserSalaryDiamondRunningWaterCO> runningWaterPage(UserSalaryDiamondRunningWaterQryCmd query);
}
