package org.dromara.system.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.system.domain.CourseChange;
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;
import java.util.List;


/**
 * 调课视图对象 course_change
 *
 * @author Lion Li
 * @date 2023-08-16
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CourseChange.class)
public class CourseChangeVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

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

    /**
     * 申请人id
     */
    @ExcelProperty(value = "申请人id")
    private Long applyId;

    /**
     * 申请人
     */
    @ExcelProperty(value = "申请人")
    private String applyName;

    /**
     * 申请时间
     */
    @ExcelProperty(value = "申请时间")
    private Date applyTime;

    /**
     * 调课班级id
     */
    @ExcelProperty(value = "调课班级id")
    private String subjectClassId;

    /**
     * 调课班级
     */
    @ExcelProperty(value = "调课班级")
    private String subjectClass;

    /**
     * 调课科目
     */
    @ExcelProperty(value = "调课科目")
    private String subject;

    /**
     * 调课科目是第几节课
     */
    @ExcelProperty(value = "调课科目是第几节课")
    private String isNum;

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

    /**
     * 周几（调课科目的上课）
     */
    @ExcelProperty(value = "周几", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "调=课科目的上课")
    private String subjectWeek;

    /**
     * 被调科目老师
     */
    @ExcelProperty(value = "被调科目老师")
    private String bePersonnel;

    /**
     * 被调科目老师Id
     */
    @ExcelProperty(value = "被调科目老师Id")
    private String bePersonnelId;

    /**
     * 被调科目
     */
    @ExcelProperty(value = "被调科目")
    private String beSubject;

    /**
     * 被调课科目是第几节课
     */
    @ExcelProperty(value = "被调课科目是第几节课")
    private String beIsNum;

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

    /**
     * 周几（被调课科目的上课）
     */
    @ExcelProperty(value = "周几", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "被=调课科目的上课")
    private String week;

    /**
     * 结果（1：待审核，2：同意，3：不同意）
     */
    @ExcelProperty(value = "结果", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=：待审核，2：同意，3：不同意")
    private String isPass;

    /**
     * 内容描述
     */
    @ExcelProperty(value = "内容描述")
    private String content;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     *
     */
    @ExcelProperty(value = "")
    private Long auditId;

    /**
     * 审核人
     */
    @ExcelProperty(value = "审核人")
    private String auditUser;

    /**
     * 审核意见
     */
    @ExcelProperty(value = "审核意见")
    private String opinion;

    /**
     * 学校id
     */
    @ExcelProperty(value = "学校id")
    private String schoolId;

    /**
     * 学校名称
     */
    @ExcelProperty(value = "学校名称")
    private String schoolName;

    /**
     * 创建者
     */
    private Long createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 更新者
     */
    private Long updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;
}
