package org.dromara.system.domain.bo;

import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.system.domain.TeacherInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 老师档案信息业务对象 teacher_info
 *
 * @author boman
 * @date 2023-08-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TeacherInfo.class, reverseConvertGenerate = false)
public class TeacherInfoBo extends BaseEntity {

    /**
     * ID
     */
    //@NotNull(message = "ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 老师id(user表id)）
     */
    //@NotNull(message = "老师id(user表id)）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long teacherId;

    /**
     * 姓名
     */
    //@NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 性别(1：男，2：女)
     */
    //@NotBlank(message = "性别(1：男，2：女)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sex;

    /**
     * 年龄
     */
    //@NotBlank(message = "年龄不能为空", groups = { AddGroup.class, EditGroup.class })
    private String age;

    /**
     * 联系方式
     */
    //@NotBlank(message = "联系方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String phone;

    /**
     * 职称
     */
    //@NotBlank(message = "职称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String professional;

    /**
     * 身份证号
     */
    //@NotBlank(message = "身份证号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String idCard;

    /**
     * 身高
     */
    //@NotBlank(message = "身高不能为空", groups = { AddGroup.class, EditGroup.class })
    private String height;

    /**
     * 体重
     */
    //@NotBlank(message = "体重不能为空", groups = { AddGroup.class, EditGroup.class })
    private String weight;

    /**
     * 血型
     */
    //@NotBlank(message = "血型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String bloodType;

    /**
     * 政治面貌
     */
    //@NotBlank(message = "政治面貌不能为空", groups = { AddGroup.class, EditGroup.class })
    private String politicalStatus;

    /**
     * 毕业证明照(地址)
     */
    //@NotBlank(message = "毕业证明照(地址)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String graduationPhoto;

    /**
     * 毕业证书照(地址)
     */
    //@NotBlank(message = "毕业证书照(地址)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String degreePhoto;

    /**
     * 教资证明照(地址)
     */
    //@NotBlank(message = "教资证明照(地址)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String teachingPhoto;

    /**
     * 职称证明照(地址)
     */
    //@NotBlank(message = "职称证明照(地址)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String professionalPhoto;

    /**
     * 证件照(地址)
     */
    //@NotBlank(message = "证件照(地址)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String identificationPhoto;

    /**
     * 门禁照(地址)
     */
    //@NotBlank(message = "门禁照(地址)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String entrancePermit;

    /**
     * 居住地址
     */
    //@NotBlank(message = "居住地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String address;

    /**
     * 入职时间
     */
    ////@NotNull(message = "入职时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date onBoardTime;

    /**
     * 参加工作时间
     */
    ////@NotNull(message = "参加工作时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date jobTime;

    /**
     * 备注
     */
    //@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    @TableField(exist = false)
    private Long schoolId;


}
