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

import com.alibaba.excel.annotation.ExcelProperty;
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 com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
/**
* 记录权限 DO
*
* @author 后台管理
*/
@TableName("t_rcd_perm")
@KeySequence("t_rcd_perm_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承：isBusiness=true 时继承 BusinessBaseDO，否则继承 BaseDO
*/
public class RecordPermissionDO extends BusinessBaseDO {



    /**
    * 主键
    */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
    * 父id
    */
    @TableField("PRN_ID")
    private Long parentId;
    /**
    * 记录类型
    */
    @TableField("SRC_TP")
    private String sourceType;
    /**
    * 记录类型
    */
    @TableField("APL_TP")
    private String applyType;
    /**
    * 记录id
    */
    @TableField("SRC_ID")
    private Long sourceId;
    /**
    * 授权类型
    */
    @TableField("TGT_TP")
    private String targetType;
    /**
    * 授权对象
    */
    @TableField("TGT_ID")
    private String targetId;
    /**
     * 授权对象
     */
    @TableField("TGT_NAME")
    private String targetName;
    /**
    * 权限类型
    */
    @TableField("PERM")
    private String permission;
    /**
    * 密级
    */
    @TableField("CNF_LVL")
    private String confidentialLevel;
    /**
    * 是否长期有效
    */
    @TableField("PMNT")
    private String permanently;
    /**
     * 生效日期
     */
    @TableField("EFCT_DT")
    private LocalDateTime effectiveDate;
    /**
    * 过期日期
    */
    @TableField("EXPR_DT")
    private LocalDateTime expirationDate;
    /**
    * 过期标识,0-有效，1-过期
    */
    @TableField("EXPR_STS")
    private String expirationStatus;
    /**
    * 作废标识,0-有效，1-作废
    */
    @TableField("CNL_FLG")
    private String cancelFlag;
    /**
    * 是否保留
    */
    @TableField("SVE_FLG")
    private String saveFlag;
//    /**
//    * 保留结束日期
//    */
//    @TableField("SVE_END_DT")
//    private LocalDateTime saveEndDate;
    /**
    * 所属部门
    */
    @TableField("SYS_DEPT_CD")
    private String systemDepartmentCode;
    /**
    * 备注
    */
    @TableField("RMK")
    private String remark;


    //====================================


    // ==================扩展字段=======================
    @TableField(exist = false)
    private Long userId;

    @TableField(exist = false)
    private List<Long> userDeptIds;

    @TableField(exist = false)
    private Set<Long> userRoles;

}