package incheon.ags.mrb.style.web.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;

/**
 * 유형별 분류: 고유값 조회 요청 DTO
 */
@Getter
@Setter
@Schema(description = "유형별 분류 고유값 조회 요청 DTO")
public class CategoryValuesRequestDTO {

    @Schema(description = "레이어 ID (물리명)", example = "rdl_cctv_p", required = true)
    @NotEmpty(message = "레이어 ID는 필수입니다")
    private String layerId;

    @Schema(description = "레이어 타입 (USER, TASK)", example = "USER", required = true)
    @NotEmpty(message = "레이어 타입은 필수입니다")
    private String layerType;

    @Schema(description = "대상 컬럼명", example = "ftc", required = true)
    @NotEmpty(message = "컬럼명은 필수입니다")
    private String columnName;

    @Schema(description = "조회할 최대 개수", example = "1000")
    @Min(value = 1, message = "limit은 1 이상이어야 합니다")
    private Integer limit = 1000;

    @Schema(description = "정렬 기준 (ASC, DESC)", example = "ASC", allowableValues = {"ASC", "DESC"})
    private String orderBy = "ASC";
}
