package com.red.circle.console.app.excel.model;

import com.alibaba.excel.annotation.ExcelProperty;
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 TeamBillAnchorStatisticsModel implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 账单ID
   */
  @ExcelProperty(value = "Bill Id")
  private String billId;

  /**
   * 区域.
   */
  @ExcelProperty(value = "Region")
  private String region;

  /**
   * 主播名称
   */
  @ExcelProperty(value = "Host Name")
  private String userNickname;

  /**
   * 主播账号(短ID)
   */
  @ExcelProperty(value = "Host Account")
  private String anchorAccount;

  /**
   * 主播ID
   */
  @ExcelProperty(value = "Host Id")
  private String anchorId;

  /**
   * 时长.
   */
  @ExcelProperty(value = "Time(Min)")
  @JsonSerialize(using = ToStringSerializer.class)
  private Long onlineTime = 0L;

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

  /**
   * 收到的礼物
   */
  @ExcelProperty(value = "Target")
  private Long giftValue = 0L;

  /**
   * 代理人
   */
  @ExcelProperty(value = "Agent Account")
  private String agentAccount;

  /**
   * 代理id.
   */
  @ExcelProperty(value = "Agent Id")
  private String agentId;

  /**
   * 代理人创建ID.
   */
  @ExcelProperty(value = "Agent Create UserId")
  private String agentCreateUserId;

  /**
   * BD
   */
  @ExcelProperty(value = "BD Account")
  private String bdAccount;

  /**
   * 账单归属时间.
   */
  @ExcelProperty(value = "Bill Belong")
  private Integer dateNumber;

  /**
   * 账号状态
   */
  @ExcelProperty(value = "Account Status")
  private String accountStatusName;

  /**
   * 设备号
   */
  @ExcelProperty(value = "Device")
  private String device;

  /**
   * 满足lv.
   */
  @ExcelProperty(value = "Lv")
  private Integer level;

  /**
   * 主播工资.
   */
  @ExcelProperty(value = "Host Salary")
  private BigDecimal hostSalary = BigDecimal.ZERO;

  /**
   * 代理工资.
   */
  @ExcelProperty(value = "Agent Salary")
  private BigDecimal agentSalary = BigDecimal.ZERO;

  /**
   * 合计.
   */
  @ExcelProperty(value = "Total Salary")
  private BigDecimal totalSalary = BigDecimal.ZERO;

  /**
   * 账单状态.
   */
  @ExcelProperty(value = "Bill Status")
  private String billStatus;

  /**
   * 代理创建创建.
   */
  @ExcelProperty(value = "Agent Create Time")
  private String agentCreateTime;

  /**
   * 历史身份.
   */
  @ExcelProperty(value = "History identity")
  private String historyIdentity;

  /**
   * bd用户id.
   */
  @ExcelProperty(value = "Bd Id")
  private String bdUserId;

  /**
   * bd leader.
   */
  @ExcelProperty(value = "Bd bdLeaderId")
  private String bdLeaderId;

  /**
   * 主播加入时间.
   */
  @ExcelProperty(value = "Anchor Join Time")
  private String anchorJointTime;

}
