package com.red.circle.other.inner.model.cmd.user;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.red.circle.framework.core.dto.CommonCommand;
import java.io.Serial;
import java.sql.Timestamp;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户基本信息
 * </p>
 *
 * @author pengliang
 * @since 2019-11-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class UserBaseInfoCmd extends CommonCommand {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 用户id.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long id;

  /**
   * 用户头像.
   */
  private String userAvatar;

  /**
   * 来源系统.
   */
  private String originSys;

  /**
   * 子系统.
   */
  private String sysOriginChild;

  /**
   * 用户昵称.
   */
  private String userNickname;

  /**
   * 用户性别:0 女，1 男,2 变性人.
   */
  private Integer userSex;

  /**
   * 用户性别:0 女，1 男，2 变性人.
   */
  private String userSexName;

  /**
   * 用户类型:0.真实用户 1.马甲用户.
   */
  private Integer userType;

  /**
   * 年龄.
   */
  private Integer age;

  /**
   * 出身年.
   */
  private Integer bornYear;

  /**
   * 出身月.
   */
  private Integer bornMonth;

  /**
   * 出身日.
   */
  private Integer bornDay;

  /**
   * 用户类型:0.真实用户 1.马甲用户.
   */
  private String userTypeName;

  /**
   * 国家名称.
   */
  private String countryName;

  /**
   * 国家id.
   */
  private Long countryId;

  /**
   * 国家Code.
   */
  private String countryCode;

  /**
   * 账号状态.
   */
  private String accountStatus;

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

  /**
   * 禁用时间，根据账号状态判断.
   */
  private Timestamp freezingTime;

  /**
   * 0.未删除 1.已删除.
   */
  private Boolean del;

  /**
   * 机器审核标签.
   */
  private String labelNames;

  /**
   * 用户等级.
   */
  private Integer level;

  /**
   * 用户账号.
   */
  private Long account;

  /**
   * 房间角色.
   */
  private String roomRole;

  /**
   * 创建时间.
   */
  private Timestamp createTime;

  /**
   * 修改时间.
   */
  private Timestamp updateTime;

}
