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

import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.infra.api.file.dto.FileRespDTO;
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
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_apl_dtl")
@KeySequence("t_rcd_apl_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
 * 支持业务基类继承：isBusiness=true 时继承 BusinessBaseDO，否则继承 BaseDO
 */
public class RecordApplyDetailDO extends BusinessBaseDO {


    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 父id
     */
    @TableField("APL_ID")
    private Long applyId;
    /**
     * 文件id
     */
    @TableField("DOC_ID")
    private Long documentId;
    /**
     * 授权类型
     */
    @TableField("TGT_TP")
    private String targetType;

    /**
     * 授权名称
     */
    @TableField("TGT_NAME")
    private String targetName;
    /**
     * 授权ID（下发流程使用）
     */
    @TableField("TGT_ID")
    private Long targetId;

    @TableField("FORM_DAT")
    private String formData;
    /**
     * 是否需要更改
     */
    @TableField("IS_MDF")
    private Integer isModify;
    /**
     * 更改原因
     */
    @TableField("MDF_CAUS")
    private String modifyCause;
    /**
     * 是否保留
     */
    @TableField("SVE_FLG")
    private String saveFlag;
    /**
     * 分发号
     */
    @TableField("ASN_CD")
    private String assignCode;
    /**
     * 分发编号
     */
    @TableField("ASN_ID")
    private String assignId;
    /**
     * 结束日期
     */
    @TableField("END_DT")
    private LocalDateTime endDate;
    /**
     * 是否长期有效
     */
    @TableField("PMNT")
    private String permanently;
    /**
     * 开始日期
     */
    @TableField("APL_STRT_DT")
    private LocalDateTime applyStartDate;
    /**
     * 截止日期
     */
    @TableField("APL_END_DT")
    private LocalDateTime applyEndDate;
    /**
     * 排序号
     */
    @TableField("SRT_NO")
    private String sortNo;
    /**
     * 所属部门
     */
    @TableField("SYS_DEPT_CD")
    private String systemDepartmentCode;
    /**
     * 备注
     */
    @TableField("RMK")
    private String remark;

    //    ============临时字段==============>
    @TableField(exist = false)
    private String recordName;

    @TableField(exist = false)
    private String recordCode;

    @TableField(exist = false)
    private String version;

    @TableField(exist = false)
    private String recordPermanently;

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

    @TableField(exist = false)
    private LocalDateTime expirationDate;

    @TableField(exist = false)
    private FileRespDTO fileInfo;

}