package com.erp.permission.dto;

import jakarta.validation.constraints.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 创建角色请求
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CreateRoleRequest {
    
    /**
     * 角色名称
     */
    @NotBlank(message = "角色名称不能为空")
    @Size(max = 255, message = "角色名称不能超过255个字符")
    private String name;
    
    /**
     * 角色标识
     */
    @NotBlank(message = "角色标识不能为空")
    @Size(max = 50, message = "角色标识不能超过50个字符")
    @Pattern(regexp = "^[a-z_]+$", message = "角色标识只能包含小写字母和下划线")
    private String code;
    
    /**
     * 角色级别
     */
    @NotNull(message = "角色级别不能为空")
    @Min(value = 1, message = "角色级别最小为1")
    @Max(value = 100, message = "角色级别最大为100")
    private Integer level;
    
    /**
     * 角色描述
     */
    @Size(max = 500, message = "角色描述不能超过500个字符")
    private String description;
    
    /**
     * 权限标识列表
     */
    private List<String> permissions;
}
