package com.red.circle.other.inner.model.dto.agency.agency;

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

/**
 * 主播账单详情导出模型.
 *
 * @author pengshigang on 2023/2/28
 */
@Data
@Accessors(chain = true)
public class TeamBillAnchorStatisticsModelDTO implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 账单ID
   */
  private String billId;

  /**
   * 区域.
   */
  private String region;

  /**
   * 主播名称
   */
  private String userNickname;

  /**
   * 主播账号(短ID)
   */
  private String anchorAccount;

  /**
   * 主播ID
   */
  private String anchorId;

  /**
   * 时长.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long onlineTime = 0L;

  /**
   * 房间流水
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long roomValue = 0L;

  /**
   * 收到的礼物
   */
  private Long giftValue = 0L;

  /**
   * 代理人
   */
  private String agentAccount;

  /**
   * 代理id.
   */
  private String agentId;

  /**
   * 代理人创建ID.
   */
  private String agentCreateUserId;

  /**
   * BD
   */
  private String bdAccount;

  /**
   * 账单归属时间.
   */
  private Integer dateNumber;

  /**
   * 账号状态
   */
  private String accountStatusName;

  /**
   * 设备号
   */
  private String device;

  /**
   * 满足lv.
   */
  private Integer level;

  /**
   * 主播工资.
   */
  private BigDecimal hostSalary = BigDecimal.ZERO;

  /**
   * 代理工资.
   */
  private BigDecimal agentSalary = BigDecimal.ZERO;

  /**
   * 合计.
   */
  private BigDecimal totalSalary = BigDecimal.ZERO;

  /**
   * 账单状态.
   */
  private String billStatus;

  /**
   * 代理创建创建.
   */
  private String agentCreateTime;

  /**
   * 历史身份.
   */
  private String historyIdentity;

  /**
   * bd用户id.
   */
  private String bdUserId;

  /**
   * bd leader.
   */
  private String bdLeaderId;

  /**
   * 主播加入时间.
   */
  private String anchorJointTime;

}
