package com.erp.permission.dto;

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

/**
 * 创建权限请求
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CreatePermissionRequest {
    
    /**
     * 权限名称
     */
    @NotBlank(message = "权限名称不能为空")
    @Size(max = 255, message = "权限名称不能超过255个字符")
    private String name;
    
    /**
     * 权限标识
     */
    @NotBlank(message = "权限标识不能为空")
    @Size(max = 100, message = "权限标识不能超过100个字符")
    @Pattern(regexp = "^[a-z.]+$", message = "权限标识只能包含小写字母和点")
    private String code;
    
    /**
     * 权限分组
     */
    @NotBlank(message = "权限分组不能为空")
    @Size(max = 100, message = "权限分组不能超过100个字符")
    private String group;
    
    /**
     * 权限描述
     */
    @Size(max = 500, message = "权限描述不能超过500个字符")
    private String description;
    
    /**
     * 排序
     */
    @Min(value = 0, message = "排序最小为0")
    private Integer sort;
}
