package com.ruoyi.hezhi.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.hezhi.domain.vo.CaseTypeVO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;
import java.util.List;

/**
 * 课程对象 tb_course
 *
 * @author ruoyi
 * @date 2024-09-14
 */
@Getter
@Setter
@ToString
public class TbCourse extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 课程主键ID */
    private Long courseId;

    /** 机构ID */
    private Long evaluateAgencyId;

    /** 机构名称 */
    private String evaluateAgencyName;

    /** 专业分类ID */
    @Excel(name = "专业分类ID")
    private Long majorId;

    /** 课程分类ID */
    @Excel(name = "课程分类ID")
    private Long classId;

    /** 职业分类ID */
    @Excel(name = "职业分类ID")
    private Long careerId;

    /** 考试ID */
    @Excel(name = "考试ID")
    private Long examId;

    /** 题库分类ID */
    private Long subjectWarehouseClassId;

    /** 课程类型（1-职业考试，2-职业技能） */
    @Excel(name = "课程类型", readConverterExp = "1=职业考试,2=职业技能")
    private Integer classType;

    /** 封面图 */
    @Excel(name = "封面图")
    private String coverImage;

    /** 课程名 */
    @Excel(name = "课程名")
    private String courseName;

    /** 课程标题 */
    @Excel(name = "课程标题")
    private String courseTitle;

    /** 开课次数 */
    @Excel(name = "开课次数")
    private String courseNum;

    /** 开课时间（开始） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开课时间（开始）", width = 30, dateFormat = "yyyy-MM-dd")
    private Date courseStart;

    /** 开课时间（结束） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开课时间（结束）", width = 30, dateFormat = "yyyy-MM-dd")
    private Date courseEnd;

    /** 学时安排 */
    @Excel(name = "学时安排")
    private String courseArrange;

    /** 参加人数 */
    @Excel(name = "参加人数")
    private Integer participateNum;

    /** 课程详情 */
    @Excel(name = "课程详情")
    private String courseDetails;

    /** 课程概述 */
    @Excel(name = "课程概述")
    private String courseOverview;

    /** 课程大纲 */
    @Excel(name = "课程大纲")
    private String courseSyllabus;

    /** 预备知识 */
    @Excel(name = "预备知识")
    private String courseKnowledge;

    /** 课程团队 */
    @Excel(name = "课程团队")
    private String courseTeam;

    /** 标签 */
    @Excel(name = "标签")
    private String tagName;

    /** 主讲老师ID集合 */
    @Excel(name = "主讲老师ID集合")
    private String teacherIds;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 排序 */
    @Excel(name = "排序")
    private Integer sort;

    /** 状态（0-显示，1-隐藏） */
    @Excel(name = "状态", readConverterExp = "0=-显示,1=隐藏")
    private Integer status;

    /** 发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date publicationTime;

    /** 发布人 */
    @Excel(name = "发布人")
    private String publisher;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date deleteTime;

    /** 删除人 */
    @Excel(name = "删除人")
    private String deleteBy;

    /** 删除标记（0-正常，1-删除） */
    private Integer delFlag;

    /** 分类名 */
    private String className;

    /** 分类组 */
    private Long[] classIds;

    /** 分类列表 */
    private List<CaseTypeVO> classList;

    /** 浏览量 */
    private Integer viewsNum;

    /** 推荐（0-否，1-推荐） */
    private Integer isRecommend;

    /** 证书要求 */
    @Excel(name = "证书要求")
    private String courseCertificate;

    /** 参考资料 */
    @Excel(name = "参考资料")
    private String courseInformation;

}
