import { IsNotEmpty, IsOptional, IsString, IsBoolean, IsUUID, MaxLength } from 'class-validator';
import { MediaItemDto, MediaListField } from '../../../common/media/media-item.dto';

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

  // short_code is auto-derived by the service. Kept optional in the
  // DTO for seeders / Excel imports; UI never sends it.
  @IsString()
  @IsOptional()
  @MaxLength(50)
  short_code?: string;

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

  @IsString()
  @IsOptional()
  @MaxLength(500)
  address?: string;

  @IsString()
  @IsOptional()
  @MaxLength(255)
  location?: string;

  @IsString()
  @IsOptional()
  @MaxLength(20)
  gps_latitude?: string;

  @IsString()
  @IsOptional()
  @MaxLength(20)
  gps_longitude?: string;

  @IsString()
  @IsOptional()
  @MaxLength(255)
  pickup_gate?: string;

  @IsString()
  @IsOptional()
  @MaxLength(255)
  dropoff_gate?: string;

  @IsString()
  @IsOptional()
  @MaxLength(255)
  contact_person?: string;

  @IsString()
  @IsOptional()
  @MaxLength(20)
  contact_phone?: string;

  @IsString()
  @IsOptional()
  special_instructions?: string;

  @IsString()
  @IsOptional()
  meeting_point?: string;

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

  @MediaListField()
  media?: MediaItemDto[];
}
