package org.dromara.system.domain.bo;

import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.system.domain.CourseChange;
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 java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.data.annotation.Transient;

/**
 * 调课业务对象 course_change
 *
 * @author Lion Li
 * @date 2023-08-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CourseChange.class, reverseConvertGenerate = false)
public class CourseChangeBo extends BaseEntity {

    /**
     * ID
     */
    private Long id;



    /**
     * 申请人id
     */
    private Long applyId;

    /**
     * 申请人
     */
    private String applyName;

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

    /**
     * 调课班级id
     */
    //@NotNull(message = "调课班级id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long subjectClassId;

    /**
     * 调课班级
     */
    //@NotNull(message = "调课班级不能为空", groups = { AddGroup.class, EditGroup.class })
    private String subjectClass;

    /**
     * 调课科目
     */
    //@NotNull(message = "调课科目不能为空", groups = { AddGroup.class, EditGroup.class })
    private String subject;

    /**
     * 调课科目是第几节课
     */
    //@NotNull(message = "调课科目是第几节课不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isNum;

    /**
     * 调课科目的上课时间
     */
    //@NotNull(message = "调课科目的上课时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date subjectTime;

    /**
     * 周几（调课科目的上课）
     */
    ////@NotNull(message = "周几（调课科目的上课）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String subjectWeek;

    /**
     * 被调科目老师
     */
    ////@NotNull(message = "被调科目老师不能为空", groups = { AddGroup.class, EditGroup.class })
    private String bePersonnel;

    /**
     * 被调科目老师Id
     */
    ////@NotNull(message = "被调科目老师Id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long bePersonnelId;

    /**
     * 被调科目
     */
    ////@NotNull(message = "被调科目不能为空", groups = { AddGroup.class, EditGroup.class })
    private String beSubject;

    /**
     * 被调课科目是第几节课
     */
    ////@NotNull(message = "被调课科目是第几节课不能为空", groups = { AddGroup.class, EditGroup.class })
    private String beIsNum;

    /**
     * 被调课科目的上课时间
     */
    //@NotNull(message = "被调课科目的上课时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beSubjectTime;

    /**
     * 周几（被调课科目的上课）
     */
    ////@NotNull(message = "周几（被调课科目的上课）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String week;

    /**
     * 结果（1：待审核，2：同意，3：不同意）
     */
    private String isPass;

    /**
     * 内容描述
     */
    ////@NotNull(message = "内容描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String content;

    /**
     * 备注
     */
    private String remark;

    /**
     *
     */
    private Long auditId;

    /**
     * 审核人
     */
    private String auditUser;

    /**
     * 审核意见
     */
    private String opinion;

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

    /**
     * 学校名称
     */
    ////@NotNull(message = "学校名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String schoolName;


    @TableField(exist = false)
    private List<Long> subjectClassIds;


}
