package com.hotwj.platform.securityManagement.hiddenDangerInspection.domain.bo;

import com.hotwj.platform.securityManagement.hiddenDangerInspection.domain.HotHiddenDangerInspection;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;

import java.util.Date;

/**
 * 隐患排查-排查项目业务对象 hot_hidden_danger_inspection
 *
 * @author shihongwei
 * @date 2025-12-31
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = HotHiddenDangerInspection.class, reverseConvertGenerate = false)
public class HotHiddenDangerInspectionBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = {EditGroup.class})
    private Long id;

    /**
     * 公司ID
     */
    @NotNull(message = "公司ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long companyId;

    /**
     * 计划ID
     */
    @NotNull(message = "计划ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long planId;

    /**
     * 排查项目
     */
    private String projectName;

    /**
     * 排查项目对应id 类型为1无
     */
    private String projectId;

    /**
     * 排查内容JSON
     */
    @NotBlank(message = "排查内容JSON不能为空", groups = {AddGroup.class, EditGroup.class})
    private String checkContentJson;

    private String keyword;

    /**
     * 隐患描述
     */
    private String dangerDesc;

    /**
     * 附件url
     */
    private String attachmentUrl;

        /**
     * 排查人ID
     */
//    @NotNull(message = "排查人ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private String checkerId;

    /**
     * 排查人姓名
     */
    private String checkerName;

    /**
     * 排查日期
     */
//    @NotNull(message = "排查日期不能为空", groups = {AddGroup.class, EditGroup.class})
    private Date checkDate;

    /**
     * 评估人id
     */
    private Long evaluatorId;

    /**
     * 评估人姓名
     */
    private String evaluatorName;

    /**
     * 审核人ID
     */
//    @NotNull(message = "审核人ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long approverId;

    /**
     * 审核人姓名
     */
    private String approverName;

    /**
     * 进度状态 无异常:1=特处理、2=审核中、3=完结 有异常:4=特处理、5=审核中、6=评估、7=治理、8=复查、9=完结
     */
    private Long status;

    /**
     * 排查人签名图片url
     */
//    @NotBlank(message = "排查人签名图片url不能为空", groups = {AddGroup.class, EditGroup.class})
    private String signImgUrl;

    /**
     * 审核日期
     */
    private Date auditDate;

    /**
     * 审核结论
     */
    private String auditConclusion;

    /**
     * 审核人签名图片url
     */
    private String approverSignImgUrl;

    /**
     * 审核-是否存在隐患 0=否 1=是
     */
    private Long auditHasDanger;

    /**
     * 0=正常, 1=已删除
     */
//    @NotNull(message = "0=正常, 1=已删除不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long isDeleted;

    /**
     * 排查类型（1=公司 2=车辆 3=人员）
     */
    private Long projectType;

    /**
     * 流程实例ID
     */
    private String instanceId;

    /**
     * 流程状态
     */
    private String flowStatus;


    /**
     * 流程任务ID
     */
    private String taskId;
}
