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

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

/**
 * 后台手动发放主播工资预览.
 */
@Data
@Accessors(chain = true)
public class TeamManualSalaryCO implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  private String id;
  private String sysOrigin;
  private String countryCode;
  private String region;

  @JsonSerialize(using = ToStringSerializer.class)
  private Long teamId;

  @JsonSerialize(using = ToStringSerializer.class)
  private Long teamOwnId;

  @JsonSerialize(using = ToStringSerializer.class)
  private Long userId;

  private UserProfileDTO userProfile;
  private Integer billBelong;
  private Long lastSettlementTarget;
  private Long currentTarget;
  private Integer policyLevel;
  private Boolean satisfyLevel;
  private Boolean agentMember;
  private BigDecimal expectedSalary;
  private BigDecimal expectedMemberSalary;
  private BigDecimal expectedAgentSalary;
  private BigDecimal payableSalary;
  private BigDecimal payableMemberSalary;
  private BigDecimal payableAgentSalary;
  private BigDecimal totalIssuedSalary;
  private BigDecimal memberIssuedSalary;
  private BigDecimal agentIssuedSalary;
  private BigDecimal overIssuedSalary;
  private BigDecimal memberOverIssuedSalary;
  private BigDecimal agentOverIssuedSalary;
  private BigDecimal currentSalaryBalance;
  private Boolean paid;
}
