import {
  IsString,
  IsEnum,
  IsOptional,
  IsBoolean,
  IsDateString,
  IsInt,
  IsEmail,
  Min,
} from 'class-validator';
import { Department, ArrivalMode } from '@prisma/client';

export class CreateVipDto {
  @IsString()
  name: string;

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

  @IsEnum(Department)
  department: Department;

  @IsEnum(ArrivalMode)
  arrivalMode: ArrivalMode;

  @IsDateString()
  @IsOptional()
  expectedArrival?: string;

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

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

  @IsInt()
  @IsOptional()
  @Min(1)
  partySize?: number;

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

  // Roster-only flag: true = just tracking for accountability, not active coordination
  @IsBoolean()
  @IsOptional()
  isRosterOnly?: boolean;

  // VIP contact info
  @IsString()
  @IsOptional()
  phone?: string;

  @IsEmail()
  @IsOptional()
  email?: string;

  // Emergency contact info (for accountability reports)
  @IsString()
  @IsOptional()
  emergencyContactName?: string;

  @IsString()
  @IsOptional()
  emergencyContactPhone?: string;
}
