package com.red.circle.other.infra.database.mongo.entity.gift;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * @author pengliang on 2022/7/25
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class GiftAcceptUser implements Serializable {

  /**
   * 接收用户ID.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long acceptUserId;

  /**
   * true 是主播，false 不是主播.
   */
  private Boolean anchor;

  /**
   * 单据ID.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long receiptId;

  /**
   * 接收金额.
   */
  private BigDecimal acceptAmount;

  /**
   * 记录目标金额=主播可用.
   */
  private BigDecimal targetAmount;

  /**
   * 礼物价值（giftUnitPrice * quantity）.
   */
  private BigDecimal giftValue;

  /**
   * 后面版本可以去除这个字段， 使用countBillId判断是否被统计到账单， true 已被统计，false 未统计.
   */
  private Boolean countTargetAmount;

  /**
   * 被统计到到账单id.
   */
  private Long countBillId;

  /**
   * 接收礼物对方获得百分比.
   */
  private BigDecimal percentage;

  /**
   * 自己送给自己获得百分比.
   */
  private BigDecimal selfPercentage;

  /**
   * 发送人-接收人, 区域.
   */
  private String region;

  /**
   * 发送人-接收人, 区域ID.
   */
  private String regionIdStr;

  /**
   * 区域是否相同.
   */
  private Boolean regionEq;

  /**
   * 座位号.
   */
  private Integer seatIndex;

}
