package com.red.circle.console.app.dto.clienobject.game;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.red.circle.other.inner.model.dto.live.RoomProfileDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import java.io.Serial;
import java.io.Serializable;
import java.sql.Timestamp;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * LUCKY GIFT 配置信息.
 * </p>
 *
 * @author zongpubin on 2023-05-05 17:18
 */
@Data
@Accessors(chain = true)
public class GameLuckyGiftCO implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 记录ID.
   */
  private String id;

  /**
   * 平台.
   */
  private String sysOrigin;

  /**
   * 用户id.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long userId;

  private UserProfileDTO userProfile;

  /**
   * 礼物id.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long giftId;

  /**
   * 礼物封面.
   */
  private String giftCover;

  /**
   * 支出金币.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long payAmount;

  /**
   * 数量.
   */
  private Integer quantity;

  /**
   * 连击礼物次数.
   */
  private Integer giftCombos;

  /**
   * 用户累计送礼次数.
   */
  private Integer userGiftIncCount;

  /**
   * 系统指定累计送礼次数.
   */
  private Integer sysGiftIncCount;

  /**
   * 出奖倍数.
   */
  private Integer multiple;

  /**
   * 出奖金币数.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long awardAmount;

  /**
   * 房间ID.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long roomId;

  /**
   * 房间信息.
   */
  private RoomProfileDTO roomProfile;

  /**
   * 是否变更库存数量(true是, false否).
   */
  private Boolean changeInventory;

  /**
   * 创建时间.
   */
  private Timestamp createTime;

}
