package com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord;

import com.zt.plat.module.qms.resource.clientManage.controller.vo.UploadFileVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
    import java.time.LocalDateTime;
    import java.time.LocalDateTime;
    import java.time.LocalDateTime;
    import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
/**
* 文件、模板、记录 DO
*
* @author 后台管理
*/
@TableName("t_rcd_rcd")
@KeySequence("t_rcd_rcd_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承：isBusiness=true 时继承 BusinessBaseDO，否则继承 BaseDO
*/
public class RecordRecordDO extends BusinessBaseDO {



    /**
    * 主键
    */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
    * 分类id
    */
    @TableField("CTGR_ID")
    private Long categoryId;
    /**
    * 文件编号
    */
    @TableField("CD")
    private String code;
    /**
    * 业务类型
    */
    @TableField("BSN_TP")
    private String businessType;
    /**
    * 表单key
    */
    @TableField("FORM_KY")
    private String formKey;
    /**
    * 文件名称
    */
    @TableField("NAME")
    private String name;
    /**
    * 版本
    */
    @TableField("VER")
    private String version;
    /**
    * 是否最新版本,默认显示最新版本
    */
    @TableField("CRNT_FLG")
    private Integer currentFlag;
    /**
    * 编制日期
    */
    @TableField("MKE_DT")
    private LocalDateTime makeDate;
    /**
    * 是否涉密
    */
    @TableField("CNF_FLG")
    private Integer confidentialFlag;
    /**
    * 密级
    */
    @TableField("CNF_LVL")
    private String confidentialLevel;
    /**
    * 加密方式
    */
    @TableField("CNF_WY")
    private String confidentialWay;
    /**
    * 秘钥
    */
    @TableField("CNF_KY")
    private String confidentialKey;
    /**
    * 是否长期有效
    */
    @TableField("PMNT")
    private String permanently;
    /**
     * 是否需要提交(用来判断文件是否需要走流程)
     */
    @TableField("SBM_FLG")
    private Integer submitFlag;
    /**
     * 是否需要提交(用来判断文件是否需要走流程)
     */
    @TableField("RCD_STS")
    private Integer recordStatus;
    /**
    * 过期日期
    */
    @TableField("EXPR_DT")
    private LocalDateTime expirationDate;
    /**
    * 生效日期
    */
    @TableField("EFCT_DT")
    private LocalDateTime effectiveDate;
    /**
    * 过期标识,0-有效，1-过期
    */
    @TableField("EXPR_STS")
    private Integer expirationStatus;
    /**
    * 作废标志,0-有效，1-作废
    */
    @TableField("CNL_FLG")
    private Integer cancelFlag;
    /**
     * 审批状态,需要走流程的审批状态
     */
    @TableField("APL_STS")
    private String applyStatus;
    /**
     * 流程实例Id
     */
    @TableField("FLW_INSC_ID")
    private String flowInstanceId;
    /**
    * 表单数据
    */
    @TableField("FORM_DAT")
    private String formData;
    /**
    * 数据集配置ID
    */
    @TableField("DAT_COLT_ID")
    private Long dataCollectionId;
    /**
    * 源文件链接
    */
    @TableField("SRC_URL")
    private String sourceUrl;
    /**
    * 所属部门
    */
    @TableField("SYS_DEPT_CD")
    private String systemDepartmentCode;
    /**
    * 备注
    */
    @TableField("RMK")
    private String remark;
    /**
     * 是否回收权限
     */
    @TableField("COLT_FLG")
    private Integer collectionFlag;
    /**
     * 原始父级ID
     */
    @TableField("MAIN_ID")
    private Long mainId;
    /**
     * 是否可编辑
     */
    @TableField("OPTN_FLG")
    private Integer operationFlag;

//    =============临时字段============>

    @TableField(exist = false)
    private String categoryName;

    @TableField(exist = false)
    private String newVersion;


//    ================临时文件=================>

    /**
     * 所属分类的自定义配置（由 RecordCategoryDO.customConfig 解析而来）
     */
    @TableField(exist = false)
    private Object customConfig;

    @TableField(exist = false)
    private List<UploadFileVo> files;

}