package com.ankaibei.workFlow.webadmin.upms.model;

import com.baomidou.mybatisplus.annotation.*;
import com.ankaibei.workFlow.common.core.annotation.RelationDict;
import lombok.Data;

import java.util.*;

/**
 * 权限资源实体对象。
 *
 * @author Buzhanyi
 * @date 2022-09-25
 */
@Data
@TableName(value = "work_sys_perm")
public class SysPerm {

    /**
     * 权限资源Id。
     */
    @TableId(value = "perm_id")
    private String permId;

    /**
     * 权限所在的权限模块Id。
     */
    @TableField(value = "module_id")
    private String moduleId;

    /**
     * 权限名称。
     */
    @TableField(value = "perm_name")
    private String permName;

    /**
     * 关联的URL。
     */
    private String url;

    /**
     * 权限在当前模块下的顺序，由小到大。
     */
    @TableField(value = "show_order")
    private Integer showOrder;

    /**
     * 创建者Id。
     */
    @TableField(value = "create_user_id")
    private String createUserId;

    /**
     * 创建时间。
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新者Id。
     */
    @TableField(value = "update_user_id")
    private String updateUserId;

    /**
     * 更新时间。
     */
    @TableField(value = "update_time")
    private Date updateTime;

    @RelationDict(
            masterIdField = "moduleId",
            slaveServiceName = "SysPermModuleService",
            slaveModelClass = SysPermModule.class,
            slaveIdField = "moduleId",
            slaveNameField = "moduleName")
    @TableField(exist = false)
    private Map<String, Object> moduleIdDictMap;
}
