package org.dromara.business.domain;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 病例基础信息对象 case_base_info
 *
 * @author wuzhigang
 * @date 2023-11-27
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "case_base_info",autoResultMap = true)
public class CaseBaseInfo extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

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

    /**
     * 病例所属用户id
     */
    private Long userId;

    /**
     * 病例上传用户id
     */
    private Long uploadUserId;

    /**
     * 病例ID
     */
    private String caseId;

    /**
     * 病例名称
     */
    private String caseName;

    /**
     * 病例文件
     */
    private String caseFile;

    /**
     * 病例美化文件
     */
    private String caseBeautifyFile;


    /**
     * 审核状态（0未审核 1通过 2拒绝）
     */
    private String checkStatus;

    /**
     * 病例状态（0正常 1禁用 ）
     */
    private String caseStatus;

    /**
     * 病例描述
     */
    private String caseDescription;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;

    /**
     * 美化状态 0否 1是
     */
    private String beautifyStatus;

    /**
     * 上传方式 0直接上传 1志愿者上传
     */
    private String uploadType;

    /**
     * 点评专家ID
     */
    private Long commentUserId;


    /**
     * 审核拒绝原因
     */
    private String rejectReason;

    /**
     * 点评时间
     */
    private Date commentTime;

    /**
     * 审核时间
     */
    private Date checkTime;

    /**
     * 点评审核状态 0未审核 1审核未通过 2审核通过
     */
    private String commentAuditStatus;

    /**
     * 点评状态 0已点评 1待点评 2重新点评
     */
    private String commentStatus;

    /**
     * 点评内容
     */
    private String commentContent;

    /**
     * 点评拒绝原因
     */
    private String commentRejectReason;

    /**
     * 病例解析审核状态 0未审核 1审核未通过 2审核通过
     */
    private String caseAnalysisStatus;

    /**
     * 病例解析拒绝原因
     */
    private String analysisRejectReason;

    /**
     * 病例点评评分
     */
    private String commentScore;

    /**
     * 项目名称
     */
    private String projectName;


    /**
     * 病例解析数据
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONObject analysisJson;

    /**
     * 美化文件下载 0未下载 1已下载
     */
    private String beautifyFileDownload;

}
