package com.qqchen.deploy.backend.schedule.dto;

import com.qqchen.deploy.backend.framework.dto.BaseDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 定时任务分类DTO
 * 
 * @author qichen
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "定时任务分类信息")
public class ScheduleJobCategoryDTO extends BaseDTO {

    @Schema(description = "分类编码", example = "DATA_CLEAN")
    @NotBlank(message = "分类编码不能为空")
    private String code;

    @Schema(description = "分类名称", example = "数据清理")
    @NotBlank(message = "分类名称不能为空")
    private String name;

    @Schema(description = "描述")
    private String description;

    @Schema(description = "图标")
    private String icon;

    @Schema(description = "颜色")
    private String color;

    @Schema(description = "是否启用")
    @NotNull(message = "启用状态不能为空")
    private Boolean enabled;

    @Schema(description = "排序号")
    @NotNull(message = "排序号不能为空")
    private Integer sort;

    @Schema(description = "该分类下的任务数量")
    private Long jobCount;
}

