package com.hotwj.platform.securityManagement.training.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;

import java.io.Serial;
import java.util.Date;

/**
 * 安全教育培训-培训主对象 hot_training
 *
 * @author shihongwei
 * @date 2025-12-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hot_training")
public class HotTraining extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

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

    /**
     * 公司ID
     */
    private Long companyId;

    /**
     * 计划名称
     */
    private String planName;

    /**
     * 人员类型（字典）
     */
    private String personType;

    /**
     * 起始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 课时（小时）
     */
    private Long classHours;

    /**
     * 绑定试卷ID列表（逗号分隔）
     */
    private String paperIds;

    /**
     * 培训地点
     */
    private String trainingLocation;

    /**
     * 培训老师
     */
    private String teacherName;

    /**
     * 计划所属
     */
    private String planOwner;

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

    /**
     * 总人数
     */
    private Long totalCount;

    /**
     * 已通过
     */
    private Long passedCount;

    /**
     * 未完成
     */
    private Long incompleteCount;

    /**
     * 待审核
     */
    private Long pendingReviewCount;

    /**
     * 是否启用：1是 0否
     */
    private Long isEnabled;

    /**
     * 是否补学：1是 0否
     */
    private Long isMakeUp;

    /**
     * 是否下发：1是 0否
     */
    private Long isIssued;

    /**
     * 课程配置ID列表（逗号分隔）
     */
    private String courseIds;

    /**
     * 下发公司ID
     */
    private String issuedCompanyId;

    /**
     * 培训类型（岗前培训/日常培训等，字典）
     */
    private String trainingType;

    /**
     * 指定参与人员ID列表（逗号分隔）
     */
    private String participantIds;

    /**
     * 对应的考核明细配置(JSON)
     */
    private String assessmentDetail;

    /**
     * 对应的审核子表/流程配置(JSON)
     */
    private String reviewFlow;

    /**
     * 会议类型
     */
    private String meetingType;

    /**
     * 会议种类
     */
    private String meetingCategory;

    /**
     * 记录人ID
     */
    private Long recorderId;

    /**
     * 记录人姓名
     */
    private String recorderName;

    /**
     * 附件
     */
    private String files;

    /**
     * 照片
     */
    private String photos;

    /**
     * 0=正常, 1=已删除
     */
    @TableLogic
    private Long isDeleted;

    /**
     * 行业类型
     */
    private String industryType;
}
