package com.hzu.labbooking.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.MpBaseEntity;

/**
 * 实验室预约信息对象 lms_lab_record
 *
 * @author yezihao
 * @date 2021-04-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("lms_lab_record")
public class LabRecord extends MpBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 实验室预约记录编号
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 预约用户编号
     */
    @Excel(name = "预约用户编号")
    private Long userId;

    /**
     * 课程编号
     */
    @Excel(name = "课程编号")
    private Long courseId;

    /**
     * 课程/班级名称
     */
    @TableField(exist = false)
    private String name;

    /**
     * 实验室编号
     */
    @Excel(name = "实验室编号")
    private Long labId;

    /**
     * 学年[2020(2020-2021)]
     */
    @Excel(name = "学年")
    private Long year;

    /**
     * 学期[1, 2]
     */
    @Excel(name = "学期")
    private Long term;

    /**
     * 星期[1-7]
     */
    @Excel(name = "星期")
    private Long day;

    /**
     * 节次[1-5(1-2,3-4,...)]
     */
    @Excel(name = "节次")
    private Long time;

    /**
     * 实验室预约状态[0-待审批, 1-审批通过, 2-驳回审批]
     */
    @Excel(name = "实验室预约状态")
    private Long status;

    /**
     * 驳回内容
     */
    @Excel(name = "驳回内容")
    private String rejectContent;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT) //插入操作时自动更新该字段
    private Date gmtCreate;

    /**
     * 更新时间[驳回时间/通过时间]
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "更新时间[驳回时间/通过时间]", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE) //插入和更新操作时自动更新该字段
    private Date gmtModified;

}
