package com.example.demo.model;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 角色实体模型。
 *
 * <p>对应系统角色，包含角色基本信息及关联的权限标识列表。</p>
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "角色实体")
public class Role {

    /** 角色ID */
    @Schema(description = "角色ID")
    private Long roleId;

    /** 角色名称 */
    @Schema(description = "角色名称")
    private String roleName;

    /** 角色编码 */
    @Schema(description = "角色编码")
    private String roleCode;

    /** 角色描述 */
    @Schema(description = "角色描述")
    private String description;

    /** 状态：0-禁用，1-启用 */
    @Schema(description = "状态：0-禁用，1-启用")
    private Integer status;

    /** 是否为超级管理员角色 */
    @Schema(description = "是否为超级管理员角色")
    private Boolean isSuperAdmin;

    /** 关联的权限标识列表 */
    @Schema(description = "关联的权限标识列表")
    private List<String> permissionCodes;
}
