package com.ytpm.app.model;

import com.ytpm.app.enums.LoginType;
import com.ytpm.custom.CustomField;
import com.ytpm.general.PageMeta;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 答题王用户表
 */
@Getter
@Setter
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("用户信息")
public class YtDyzUser extends PageMeta {
    /** 用户ID */
    @ApiModelProperty("用户ID")
    private String userId;
    /** 用户昵称 */
    @ApiModelProperty("用户昵称")
    private String nickName;
    /** 用户头像 */
    @ApiModelProperty("用户头像")
    private String headImg;
    /** 注册时间 */
    @CustomField(node = 1)
    @ApiModelProperty("注册时间")
    private Date registryTime;
    /** 最新登录时间 */
    @ApiModelProperty("最新登录时间")
    private Date lastLoginTime;
    /** 注册时间 */
    @CustomField(node = 1)
    @ApiModelProperty("注册时间")
    private String registryTimeStr;
    /** 最新登录时间 */
    @ApiModelProperty("最新登录时间")
    private String lastLoginTimeStr;
    /** 最新登录IP */
    @ApiModelProperty("最新登录IP")
    private String lastLoginIp;

    @ApiModelProperty("最新登陆IP解析地址")
    private String lastLoginIpAddress;

    /** 登录天数 */
    @CustomField(node = 1)
    @ApiModelProperty("登录天数")
    private Integer loginDays;
    /** 总观看视频数 */
    @CustomField(node = 1)
    @ApiModelProperty("总观看视频数")
    private Integer totalVideo;
    /** 总收益 */
    @ApiModelProperty("总收益")
    private BigDecimal totalIncome;

    @ApiModelProperty("前三日总收益")
    private BigDecimal nearlyIncome;

    /** 红包余额 */
    @CustomField(node = 1)
    @ApiModelProperty("红包余额")
    private BigDecimal redPacketBalance;
    /** 红包总金额 */
    @ApiModelProperty("红包总金额")
    private BigDecimal redPacketAmount;
    /** 积分余额 */
    @CustomField(node = 1)
    @ApiModelProperty("积分余额")
    private BigDecimal pointsBalance;
    /** 积分总额 */
    @ApiModelProperty("积分总额")
    private BigDecimal pointsTotal;
    /** 提现总额 */
    @CustomField(node = 1)
    @ApiModelProperty("提现总额")
    private BigDecimal withdrawTotal;
    /** 用户签到天数 */
    @ApiModelProperty("用户签到天数")
    private Integer signDays;
    /** 用户状态 */
    @CustomField(value = "user_status",desc = "用户状态",node = 1)
    @ApiModelProperty("用户状态")
    private Integer userStatus;
    /** 风控原因 */
    @ApiModelProperty("风控原因")
    private String riskReason;
    /** 微信openid */
    @ApiModelProperty("微信openid")
    private String wxOpenId;
    /** iosId */
    @ApiModelProperty("iosId")
    private String iosId;
    /** 平台ID 唯一标识 */
    @ApiModelProperty("平台ID")
    private String platformId;
    /** 最后一次回答问题ID */
    @ApiModelProperty("最后一次回答问题ID")
    private String lastQuestionId;
    /** 体力 */
    @ApiModelProperty("体力")
    private Integer power;
    /** 今日答题数 */
    @CustomField(node = 1)
    @ApiModelProperty("今日答题数")
    private Integer todayAnswerCount;
    /** 历史答题数 */
    @ApiModelProperty("历史答题数")
    private Integer historyAnswerCount;
    /** 答题历史记录 */
    @ApiModelProperty("答题历史记录")
    private List<YtDyzAnswerRecord> answerRecordList;
    /** 答题历史记录简易版 */
    @ApiModelProperty("答题历史记录简易版")
    private List<String> answerRecordTimeList;
    /** 登录历史记录 */
    @ApiModelProperty("登录历史记录")
    private List<YtDyzLoginRecord> loginRecordList;
    /** 风控编码 */
    private String riskCode;
    @ApiModelProperty("今日视频播放数")
    private int todayVideo;
    @ApiModelProperty(value = "渠道ID")
    private Long ditchId;
    @ApiModelProperty(value = "渠道名称")
    private String ditchName;
    @ApiModelProperty(value = "今日收益")
    private BigDecimal todayIncome;
    @ApiModelProperty(value = "应用ID")
    private String appId;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "设备ID")
    private String deviceId;
    @ApiModelProperty(value = "手机json收集信息")
    private String phoneJson;

    @ApiModelProperty(value = "是否已达到体力上限")
    private Boolean ifPowerLimit;

    @ApiModelProperty(value = "登陆前三条广告记录")
    List<YtDyzAdRecord> preAdRecordList;

    @ApiModelProperty(value = "当前登陆方式")
    private LoginType loginType;

    @ApiModelProperty(value = "服务名")
    private String serviceName;

    @ApiModelProperty(value = "体力不足提示语模板")
    private String powerLimitTip;
}
