package com.red.circle.other.app.dto.clientobject.user.user;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.red.circle.other.app.dto.clientobject.user.relation.cp.CpCabinConfigCO;
import com.red.circle.other.app.dto.clientobject.user.relation.cp.CpPairUserProfileCO;
import java.io.Serial;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import com.red.circle.framework.dto.ClientObject;

/**
 * CP(小屋、祝福)相关
 *
 * @author zongpubin on 2023/11/20
 */

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class UserCpCabinCO extends ClientObject {
  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * cp值.
   */
  private String cpVal;

  /**
   * 祝福值.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long blessVal;

  /**
   * 上个月cp值.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long cpValLastMonth;

  /**
   * 历史最高cp值.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long historyCpValMax;

  /**
   * CP信息.
   */
  private CpPairUserProfileCO cpPairUserProfileCO;

  /**
   * 小屋配置.
   */
  private List<CpCabinConfigCO> cpCabinConfigCO;

  /**
   * 当前佩戴的小屋.
   */
  private CpCabinConfigCO currentCpCabinConfigCO;

  /**
   * 特效所需数据
   */
  private UserCpCabinSpecialCO userCpCabinSpecial;

  /**
   * 是否进的自己小屋.
   */
  private Boolean checkSelfCabin;

}
