package com.red.circle.other.infra.database.mongo.service.game;

import com.red.circle.other.infra.database.mongo.entity.game.redpacket.GameRedPacket;
import com.red.circle.other.inner.model.cmd.game.GameRedPacketBackQryCmd;
import java.math.BigDecimal;
import java.util.List;

/**
 * 红包游戏.
 *
 * @author pengliang on 2022/7/8
 */
public interface GameRedPacketSendRecordService {

  /**
   * 获取红包记录.
   */
  List<GameRedPacket> list(GameRedPacketBackQryCmd query);

  /**
   * 根据id获取游戏记录.
   */
  GameRedPacket getById(Long id);

  /**
   * 添加红包记录.
   */
  void add(GameRedPacket gameRedPacket);

  /**
   * 修改状态.
   */
  void updateStatus(Long id, GameRedPacket.GameRedPacketStatus status);

  /**
   * 添加领取用户.
   */
  void addReceiveUsers(Long id, Long userId, BigDecimal amount);

  /**
   * 添加日志.
   */
  void addLogs(Long id, String log);

  /**
   * 查询出需要退款的个人红包.
   */
  // List<GameRedPacket> refundListByTypeUser();

  /**
   * 将类型为USER且有领取成员与状态为[可用的]的红包修改成已领取状态.
   */
  // void updateTypeUserAvailableExistReceivedUser();

}
