package com.erp.category.dto;

import jakarta.validation.constraints.*;
import lombok.Data;

/**
 * 创建分类请求DTO
 */
@Data
public class CreateCategoryRequest {
    
    /**
     * 分类名称
     */
    @NotBlank(message = "分类名称不能为空")
    @Size(min = 1, max = 50, message = "分类名称长度必须在1-50个字符之间")
    private String name;
    
    /**
     * 分类编码 - 业务标识，需唯一
     */
    @NotBlank(message = "分类编码不能为空")
    @Size(min = 1, max = 50, message = "分类编码长度必须在1-50个字符之间")
    @Pattern(regexp = "^[a-zA-Z0-9_-]+$", message = "分类编码只能包含字母、数字、下划线和连字符")
    private String code;
    
    /**
     * 父分类ID - null或0表示根分类
     */
    private Long parentId;
    
    /**
     * 排序号
     */
    @Min(value = 0, message = "排序号不能小于0")
    private Integer sortOrder = 0;
    
    /**
     * 分类图标
     */
    @Size(max = 255, message = "图标URL长度不能超过255个字符")
    private String icon;
    
    /**
     * 分类描述
     */
    @Size(max = 500, message = "分类描述长度不能超过500个字符")
    private String description;
    
    /**
     * 状态 - 默认为启用
     */
    private Integer status = 1;
}
