package org.xyzh.common.vo;

import org.xyzh.common.dto.permission.TbSysPermission;
import org.xyzh.common.dto.role.TbSysRole;
import org.xyzh.common.dto.system.TbSysModule;

import java.util.List;

import org.xyzh.common.dto.BaseDTO;
import org.xyzh.common.dto.menu.TbSysMenu;
import org.xyzh.common.dto.permission.TbSysPermission;


public class PermissionVO extends BaseDTO{
    private static final long serialVersionUID = 1L;

    /**
     * @description    权限ID
     * @author    yslg
     * @since 2024-06
     */
    private String permissionID;

    /**
     * @description    模块ID
     * @author    yslg
     * @since 2025-10-25
     */
    private String moduleID;

    /**
     * @description    模块名称
     * @author    yslg
     * @since 2025-10-30
     */
    private String moduleName;

    /**
     * @description    模块描述
     * @author    yslg
     * @since 2025-10-30
     */
    private String moduleDescription;

    /**
     * @description    权限名称
     * @author    yslg
     * @since 2024-06
     */
    private String name;

    /**
     * @description    权限描述
     * @author    yslg
     * @since 2024-06
     */
    private String description;

    /**
     * @description    权限编码
     * @author    yslg
     * @since 2024-06
     */
    private String code;

    /**
     * @description    创建人
     * @author    yslg
     * @since 2024-06
     */
    private String creator;

    /**
     * @description    创建人名称
     * @author    yslg
     * @since 2024-06
     */
    private String creatorName;

    /**
     * @description    更新人
     * @author    yslg
     * @since 2024-06
     */
    private String updater;

    /**
     * @description    绑定类型
     * @author    yslg
     * @since 2024-06
     */
    private String bindType;

    /**
     * @description    菜单ID（用于权限绑定菜单查询）
     * @author    yslg
     * @since 2025-10-30
     */
    private String menuID;

    /**
     * @description    父菜单ID（用于权限绑定菜单查询）
     * @author    yslg
     * @since 2025-10-30
     */
    private String parentID;
    /**
     * @description    菜单名称（用于权限绑定菜单查询）
     * @author    yslg
     * @since 2025-10-30
     */
    private String menuName;

    /**
     * @description    菜单描述（用于权限绑定菜单查询）
     * @author    yslg
     * @since 2025-10-30
     */
    private String menuUrl;

    /**
     * @description    角色ID（用于权限绑定角色查询）
     * @author    yslg
     * @since 2025-10-30
     */
    private String roleID;

    /**
     * @description    角色名称（用于权限绑定角色查询）
     * @author    yslg
     * @since 2025-10-30
     */
    private String roleName;

    /**
     * @description    角色描述（用于权限绑定角色查询）
     * @author    yslg
     * @since 2025-10-30
     */
    private String roleDescription;

    /**
     * @description    绑定菜单
     * @author    yslg
     * @since 2024-06
     */
    private List<TbSysMenu> menus;

    /**
     * @description    绑定角色
     * @author    yslg
     * @since 2024-06
     */
    private List<TbSysRole> roles;

    /**
     * @description    绑定权限
     * @author    yslg
     * @since 2024-06
     */
    private List<TbSysPermission> permissions;

    /**
     * @description    模块
     * @author    yslg
     * @since 2025-10-25
     */
    private TbSysModule module; 

    /**
     * @description    更新人名称
     * @author    yslg
     * @since 2024-06
     */
    private String updaterName;

    public String getModuleID() {
        return moduleID;
    }

    public void setModuleID(String moduleID) {
        this.moduleID = moduleID;
    }

    public String getModuleName() {
        return moduleName;
    }

    public void setModuleName(String moduleName) {
        this.moduleName = moduleName;
    }

    public String getModuleDescription() {
        return moduleDescription;
    }

    public void setModuleDescription(String moduleDescription) {
        this.moduleDescription = moduleDescription;
    }

    public String getPermissionID() {
        return permissionID;
    }

    public void setPermissionID(String permissionID) {
        this.permissionID = permissionID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public String getUpdaterName() {
        return updaterName;
    }

    public void setUpdaterName(String updaterName) {
        this.updaterName = updaterName;
    }

    public String getBindType() {
        return bindType;
    }

    public void setBindType(String bindType) {
        this.bindType = bindType;
    }

    public List<TbSysMenu> getMenus() {
        return menus;
    }

    public void setMenus(List<TbSysMenu> menus) {
        this.menus = menus;
    }

    public List<TbSysRole> getRoles() {
        return roles;
    }

    public void setRoles(List<TbSysRole> roles) {
        this.roles = roles;
    }

    public List<TbSysPermission> getPermissions() {
        return permissions;
    }
    
    public void setPermissions(List<TbSysPermission> permissions) {
        this.permissions = permissions;
    }

    public TbSysModule getModule() {
        return module;
    }

    public void setModule(TbSysModule module) {
        this.module = module;
    }

    public String getMenuID() {
        return menuID;
    }

    public void setMenuID(String menuID) {
        this.menuID = menuID;
    }

    public String getParentID() {
        return parentID;
    }

    public void setParentID(String parentID) {
        this.parentID = parentID;
    }

    public String getMenuName() {
        return menuName;
    }

    public void setMenuName(String menuName) {
        this.menuName = menuName;
    }

    public String getMenuUrl() {
        return menuUrl;
    }

    public void setMenuUrl(String menuUrl) {
        this.menuUrl = menuUrl;
    }

    public String getRoleID() {
        return roleID;
    }

    public void setRoleID(String roleID) {
        this.roleID = roleID;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public String getRoleDescription() {
        return roleDescription;
    }

    public void setRoleDescription(String roleDescription) {
        this.roleDescription = roleDescription;
    }

}
