import { IsString, IsOptional, IsIn, IsBoolean, IsNumber, Min, Max, } from "class-validator"; /** * DTO for querying calendar preview widget data */ export class CalendarPreviewQueryDto { @IsString({ message: "view must be a string" }) @IsIn(["day", "week", "agenda"], { message: "view must be one of: day, week, agenda", }) view!: "day" | "week" | "agenda"; @IsOptional() @IsBoolean({ message: "showTasks must be a boolean" }) showTasks?: boolean; @IsOptional() @IsBoolean({ message: "showEvents must be a boolean" }) showEvents?: boolean; @IsOptional() @IsNumber({}, { message: "daysAhead must be a number" }) @Min(1, { message: "daysAhead must be at least 1" }) @Max(30, { message: "daysAhead must not exceed 30" }) daysAhead?: number; }