package com.srs.flowable.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.srs.common.annotation.Excels;
import com.srs.common.annotation.NotNull;
import com.srs.common.core.domain.BaseEntity;
import com.srs.common.core.domain.entity.SysDept;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

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

/**
 * 学生信息对象 srs_student
 *
 * @author srs
 * @date 2023-06-27
 */
@TableName("srs_student")
@Data
public class Student extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @TableField("bank_addr")
    public String bankAddr;


    @TableField(exist = false)
    public String tNo;

    /**
     * 银行卡
     */
    @TableField("xhk")
    @NotNull("银行卡")
    public String xhk;

    /**
     * 学生id
     */
    @TableId(value = "stu_id", type = IdType.AUTO)
    private Long stuId;

    /**
     * 学号
     */
    @Excel(name = "学号")
    private String stuNo;
    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String name;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private String gender;
    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    @NotNull("生日")
    private Date birthday;
    /**
     * 身份证号码
     */
    @Excel(name = "身份证号码")
//    @NotNull("身份证号码")
    private String idCard;

    /**
     * 学院id
     */
    private Long deptId;
    @Excels({
            @Excel(name = "学院名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
    })
    @TableField(exist = false)
    private SysDept dept;
    /**
     * 专业id
     */
    private Long majorId;

    /**
     * 所属班级ID
     */
    private Long classId;

    @Excel(name = "班级代码")
    private String classCode;

    /**
     * 手机号码
     */
    @Excel(name = "手机号码")
    @NotNull("手机号码")
    private String phone;

    /**
     * 家庭地址
     */
    @Excel(name = "家庭地址")
//    @NotNull("家庭地址")
    private String address;


    /**
     * 状态（01：在校  02：变更离校   03：毕业
     */
//    @Excel(name = "状态", readConverterExp = "状态（0正常")
    private String status;

    /**
     * 删除标志（0代表存在
     */
    private String delFlag;
    /**
     * 宿舍id
     */
    private Long roomId;

}
