import { IsNotEmpty, IsOptional, IsString, IsBoolean, IsUUID, IsNumber, IsArray, Matches, MaxLength, Min } from 'class-validator';

export class CreateSeasonDto {
  @IsUUID() @IsNotEmpty()
  destination_id: string;

  @IsString() @IsNotEmpty() @MaxLength(100)
  name: string;

  @Matches(/^\d{2}-\d{2}$/, { message: 'start_date must be in MM-DD format (e.g. 03-15)' })
  @IsOptional()
  start_date?: string;

  @Matches(/^\d{2}-\d{2}$/, { message: 'end_date must be in MM-DD format (e.g. 12-20)' })
  @IsOptional()
  end_date?: string;

  @IsArray() @IsOptional()
  durations?: { start: string; end: string }[];

  @IsNumber() @IsOptional() @Min(0)
  sort_order?: number;

  @IsBoolean() @IsOptional()
  is_active?: boolean;
}
