package com.fs.his.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.his.domain.FsUser;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class FsUserVO extends FsUser implements Serializable
{
    @ApiModelProperty(value = "销售名称")
    @Excel(name = "所属销售", sort = 10)
    private String companyUserNickName;

    @ApiModelProperty(value = "所属公司")
    @Excel(name = "所属公司", sort = 9)
    private String companyName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "会员注册时间", dateFormat = "yyyy-MM-dd HH:mm:ss" , sort = 6)
    private Date createTime;

    private String username;
    /** 用户密码（跟pwd） */
    private String password;

    /** 真实姓名 */
    private String realName;

    /** 生日 */
    private Long birthday;

    /** 身份证号码 */
    private String idCard;

    /** 用户昵称 */
    @Excel(name = "会员昵称", sort = 1)
    private String nickname;

    /** 用户备注 */
    @Excel(name = "用户备注", sort = 12)
    private String remark;

    /** 用户余额 */
    @Excel(name = "用户余额", sort = 4)
    private BigDecimal nowMoney;

    /** 佣金金额 */
    private BigDecimal brokeragePrice;

    /** 连续签到天数 */
    private Long signNum;

    private String statusText;

    /** 等级 */
    private Integer level;

    /** 推广上级用户ID */
    private Long spreadUserId;

    /** 推广员关联时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date spreadTime;

    /** 用户类型 */
    private String userType;

    /** 是否为推广员 */
    private Integer isPromoter;

    /** 用户购买次数 */
    private Long payCount;

    /** 下级人数 */
    private Long spreadCount;

    /** 详细地址 */
    private String addres;

    private Integer isWeixinAuth;

    private Long companyId;

    private String companyUserName;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date registerDate;
    private String registerCode;

    private Integer isVip;
    private Date  vipStartDate;
    private Date  vipEndDate;
    private Integer vipLevel;
    private Integer vipStatus;

    private String jpushId;

    private Integer sex;
    private Integer isAddQw;
    private Long qwExtId;
    private Integer isShow;//是否展示购买以及订单状态



    private String courseMaOpenId;//看课小程序openId

    // 企微重粉
    private Integer qwRepeat;
    // 小程序(看课)重粉
    private Integer userRepeat;
    // 是否已购0 否 1程序内下单 2程序外下单
    private Integer payOrder;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date startCreateTime;

    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endCreateTime;

    /** 消费总金额 */
    private BigDecimal totalAmount;

    /** 最后一次消费时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastBuyTime;

    /** 最后一次消费金额 */
    private Double number;

    /** 关联id */
    private String businessId;

    @ApiModelProperty(value = "看课数量")
    @Excel(name = "看课数量", sort = 8)
    private Long watchCourseCount;

    @ApiModelProperty(value = "参与营期数量")
    @Excel(name = "参与营期数量", sort = 9)
    private Long partCourseCount;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "最后看课时间")
    @Excel(name = "最后看课时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 11)
    private Date lastWatchDate;

    @Excel(name = "状态", sort = 7)
    private String statusName;

    @ApiModelProperty(value = "管理状态名称")
    @Excel(name = "管理状态", sort = 13)
    private String manageStatusName;

    @ApiModelProperty(value = "项目ID")
    private Long projectId;

    @ApiModelProperty(value = "销售用户关联id")
    private Long companyUserId;

    @ApiModelProperty(value = "绑定时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date bindTime;
}
