package cn.cslg.report.entity;

import cn.cslg.report.common.model.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

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

@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName(value = "REPORT")
@Schema(description="报告",required = true)
public class Report extends BaseEntity<Report> {
    /**
     * 标的专利/产品号
     */
    @Schema(description="标的专利号",required = true)
    @TableField(value = "SIGN_PATENT_NO")
    private String signPatentNo;

    /**
     * 报告名称
     */
    @Schema(description="报告名称",required = true)
    @TableField(value = "NAME")
    private String name;

    /**
     * 产品/技术
     */
    @Schema(description="产品/技术")
    @TableField(value = "PRO_TEC")
    private String proTec;

    /**
     * 报告类别
     */
    @Schema(description="报告类别（0无效分析1第三方意见2稳定性分析3FTO调查4侵权分析5回避设计6图表分析）")
    @TableField(value = "TYPE")
    private Integer type;

    /**
     * 报告状态
     */
    @Schema(description="报告状态")
    @TableField(value = "STATUS")
    private Integer status;

    /**
     * 报告生成时间
     */
    @Schema(description="报告生成时间")
    @TableField(value = "CREATE_TIME")
    private Date createTime;

    /**
     * 报告生成文件ID
     */
    @Schema(description="报告生成文件ID")
    @TableField(value = "REPORT_FILE_ID")
    private Integer reportFileId;

    /**
     * 负责人ID
     */
    @Schema(description="负责人ID")
    @TableField(value = "PERSON_ID")
    private Integer personId;
    /**
     * 负责人ID
     */
    @Schema(description="负责人姓名")
    @TableField(value = "PERSON_NAME")
    private String personName;

    /**
     * 委托人ID
     */
    @Schema(description="委托人ID")
    @TableField(value = "CLIENT_ID")
    private Integer clientId;

    /**
     * 委托人姓名
     */
    @Schema(description="委托人姓名")
    @TableField(value = "CLIENT_NAME")
    private String clientName;

    /**
     * 承担部门ID
     */
    @Schema(description="承担部门ID")
    @TableField(value = "DEPARTMENT_ID")
    private Integer departmentId;

    /**
     * 承担部门名称
     */
    @Schema(description="承担部门名称")
    @TableField(value = "DEPARTMENT_NAME")
    private String departmentName;

    /**
     * 关联报告ID
     */
    @Schema(description="关联报告ID")
    @TableField(value = "ASSOCIATE_REPORT_ID")
    private Integer associateReportId;

    /**
     * 关联报告名称
     */
    @Schema(description="关联报告名称")
    @TableField(value = "ASSOCIATE_REPORT_NAME")
    private String associateReportName;

    /**
     * 应用场景
     */
    @Schema(description="应用场景")

    @TableField("SCENARIO_ID")
    private String scenarioId;
    /**
     * 调查类型
     */
    @Schema(description="调查类型")
    @TableField(value = "IT_FLAG")
    private Integer itFlag;

    /**
     * 专题库ID
     */
    @Schema(description="专题库ID")
    @TableField(value = "PROJECT_ID")
    private Integer projectId;

    /**
     * 卷号
     */
    @Schema(description="卷号")
    @TableField(value = "VOLUME_NUMBER")
    private String volumeNumber;
    /**
     * 拆分根据
     */
    @Schema(description="拆分根据")
    @TableField(value = "SPLIT_BY")
    private Integer splitBy;
    /**
     * 拆分类型
     */
    @Schema(description="拆分类型")
    @TableField(value = "SPLIT_TYPE")
    private Integer splitType;

    /**
     * 创建人ID
     */
    @Schema(description="创建人ID")
    @TableField(value = "CREATE_PERSON_ID")
    private Integer createPersonId;
    /**
     * 创建人姓名
     */
    @Schema(description="拆分类型")
    @TableField(value = "CREATE_PERSON_NAME")
    private String createPersonName;

    /**
     * 文件
     */
    @TableField(exist = false)
    private List<ReportFiles> reportFiles;
    /**
     * 场景列表
     */
    @TableField(exist = false)
    private List<String> scenarioList;

    @TableField(exist = false)
    private List<String> scenarioNames;
}
