package org.dromara.system.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.data.annotation.Transient;

import java.io.Serial;
import java.util.List;

/**
 * 调课对象 course_change
 *
 * @author Lion Li
 * @date 2023-08-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("course_change")
public class CourseChange extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id")
    private Long id;

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

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

    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date applyTime;

    /**
     * 调课班级id
     */
    private String subjectClassId;

    /**
     * 调课班级
     */
    private String subjectClass;

    /**
     * 调课科目
     */
    private String subject;

    /**
     * 调课科目是第几节课
     */
    private String isNum;

    /**
     * 调课科目的上课时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date subjectTime;

    /**
     * 周几（调课科目的上课）
     */
    private String subjectWeek;

    /**
     * 被调科目老师
     */
    private String bePersonnel;

    /**
     * 被调科目老师Id
     */
    private String bePersonnelId;

    /**
     * 被调科目
     */
    private String beSubject;

    /**
     * 被调课科目是第几节课
     */
    private String beIsNum;

    /**
     * 被调课科目的上课时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beSubjectTime;

    /**
     * 周几（被调课科目的上课）
     */
    private String week;

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

    /**
     * 内容描述
     */
    private String content;

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

    /**
     *
     */
    private Long auditId;

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

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

    /**
     * 学校id
     */
    private String schoolId;

    /**
     * 学校名称
     */
    private String schoolName;

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

}
