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;
}
