package com.ruoyi.hezhi.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * 学员对象 tb_student
 *
 * @author ruoyi
 * @date 2024-10-21
 */
@Getter
@Setter
@ToString
public class TbStudent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 学员主键ID */
    private Long studentId;

    /** 小程序openId */
    private String openId;

    /** 公众号openId */
    private String gzhOpenId;

    /** 开放平台unionId */
    private String unionId;

    /** 学员编号 */
    @Excel(name = "学员编号")
    private String studentNumber;

    /** 登录token */
    private String loginToken;

    /** 登录token加密 */
    private String loginTokenEncrypt;

    /** 邀请人ID */
    private Long parentId;

    /** 邀请人编号 */
    private String parentNumber;

    /** 头像 */
    @Excel(name = "头像")
    private String headPortrait;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickName;

    /** 姓名 */
    @Excel(name = "姓名")
    private String studentName;

    /** 性别（0-男，1-女，2-未知） */
    @Excel(name = "性别", readConverterExp = "0=男,1=女,2=未知")
    private Integer sex;

    /** 出生日期 */
    @Excel(name = "出生日期")
    private String birthday;

    /** 电话/手机 */
    @Excel(name = "电话/手机")
    @NotBlank(message = "缺少电话/手机")
    private String phone;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String identityCard;

    /** 身份证国徽面（正面） */
    @Excel(name = "身份证国徽面")
    private String identityCardBadge;

    /** 身份证人像面（反面） */
    @Excel(name = "身份证人像面")
    private String identityCardPortrait;

    /** 毕业证书（多个用英文逗号隔开） */
    @Excel(name = "毕业证书")
    private String graduationCertificate;

    /** 学历（0-无，1-小学，2-初中，3-高中，4-中专，5-专科，6-本科，7-研究生） */
    @Excel(name = "学历")
    private String education;

    /** 毕业院校ID */
    private Long graduationSchoolId;

    /** 毕业院校 */
    @Excel(name = "毕业院校")
    private String graduationSchool;

    /** 毕业时间 */
    @Excel(name = "毕业时间")
    private String graduationTime;

    /** 登录类型（0-默认，1-手机号，2-微信，3-身份证号） */
    private Integer loginType;

    /** openId */
    private String openid;

    /** 密码 */
    private String password;

    /** 密码未加密 */
    private String passwordUnencrypted;

    /** 邀请码图 */
    private String invitationCodeImg;

    /** 类型 */
    private Integer type;

    /** 市ID */
    private Long cityId;

    /** 省ID */
    private Long provinceId;

    /** 区（县）ID */
    private Long areaId;

    /** 省名 */
    private String provinceName;

    /** 市名 */
    private String cityName;

    /** 区名 */
    private String areaName;

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

    /** 审核状态（0-待审核，1-审核通过，2-审核拒绝 3-未认证） */
    @Excel(name = "审核状态", readConverterExp = "0=待审核,1=审核通过,2=审核拒绝,3=未认证")
    private Integer examineStatus;

    /** 审核反馈 */
    private String examineFeedback;

    /** 冻结状态（0-正常，1-冻结） */
    @Excel(name = "冻结状态", readConverterExp = "0=正常,1=冻结")
    private Integer frozenStatus;

    /** 冻结状态反馈 */
    private Integer frozenFeedback;

    /** 排序 */
    private Integer sort;

    /** 备注 */
    private String remarks;

    /** 状态（0-显示，1-隐藏） */
    private Integer status;

    /** 发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date publicationTime;

    /** 发布人 */
    private String publisher;

    /** 删除时间 */
    private Date deleteTime;

    /** 删除人 */
    private String deleteBy;

    /** 删除标记（0-正常，1-删除） */
    private Integer delFlag;

    /** 老师ID */
    private Long teacherId;

    //老密码
    private String oldPassword;

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

}
