package org.dromara.ygpassport.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.ygpassport.domain.Student;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 学生详情视图对象 ep_student
 *
 * @author Lion Li
 * @date 2024-03-24
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = Student.class)
public class StudentVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ExcelProperty(value = "序号")
    private Long id;

    /**
     * 学生学号
     */
    @ExcelProperty(value = "学生学号")
    private String stuNo;

    /**
     * 学生姓名
     */
    @ExcelProperty(value = "学生姓名")
    private String stuName;

    /**
     * 学生年龄
     */
    @ExcelProperty(value = "学生年龄")
    private Long age;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private Long stuSex;

    /**
     * 所属校区
     */
    @ExcelProperty(value = "所属校区", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "stu_campus")
    private Long stuCampus;

    /**
     * 所属学院
     */
    @ExcelProperty(value = "所属学院", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "faculties")
    private Long faculties;

    /**
     * 专业
     */
    @ExcelProperty(value = "专业", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "stu_major")
    private Long stuMajor;

    /**
     * 年级
     */
    @ExcelProperty(value = "年级")
    private String stuGrade;

    /**
     * 班级名称
     */
    @ExcelProperty(value = "班级名称")
    private String stuClass;

    /**
     * 学制
     */
    @ExcelProperty(value = "学制")
    private Long academic;

    /**
     * 培养层次
     */
    @ExcelProperty(value = "培养层次", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "stu_levels")
    private Long stuLevels;

    /**
     * 照片路径
     */
    @ExcelProperty(value = "照片路径")
    private String imagePath;

    /**
     * 姓名拼音
     */
    @ExcelProperty(value = "姓名拼音")
    private String pinyin;

    /**
     * 国籍
     */
    @ExcelProperty(value = "国籍")
    private String nationality;

    /**
     * 籍贯
     */
    @ExcelProperty(value = "籍贯")
    private String origin;

    /**
     * 民族
     */
    @ExcelProperty(value = "民族")
    private String ethnic;

    /**
     * 政治面貌
     */
    @ExcelProperty(value = "政治面貌")
    private String policyStatus;

    /**
     * 出生日期
     */
    @ExcelProperty(value = "出生日期")
    private Date birthTime;

    /**
     * 手机号码
     */
    @ExcelProperty(value = "手机号码")
    private String phone;

    /**
     * 邮箱
     */
    @ExcelProperty(value = "邮箱")
    private String email;

    /**
     * 特长
     */
    @ExcelProperty(value = "特长")
    private String specialty;

    /**
     * 地址
     */
    @ExcelProperty(value = "地址")
    private String address;

    /**
     * 导师
     */
    @ExcelProperty(value = "导师")
    private Long mintorId;

}
