import { IsOptional, IsString, IsUUID, IsArray, MaxLength } from 'class-validator';

export class AssignTransportItemDto {
  @IsUUID() @IsOptional()
  supplier_id?: string | null;

  /** Free-text supplier label — e.g. "Private Taxi", "Street cab". */
  @IsString() @IsOptional() @MaxLength(255)
  supplier_name_text?: string | null;

  @IsUUID() @IsOptional()
  driver_id?: string | null;

  /** Free-text driver name when the driver isn't a registered master. */
  @IsString() @IsOptional() @MaxLength(255)
  driver_name_text?: string | null;

  @IsString() @IsOptional() @MaxLength(20)
  driver_phone_text?: string | null;

  @IsUUID() @IsOptional()
  vehicle_id?: string | null;

  /** Free-text vehicle number / plate when not a registered master. */
  @IsString() @IsOptional() @MaxLength(50)
  vehicle_no_text?: string | null;

  @IsString() @IsOptional() @MaxLength(10)
  pickup_time?: string | null;

  @IsString() @IsOptional() @MaxLength(500)
  pickup_address?: string | null;

  @IsString() @IsOptional() @MaxLength(500)
  dropoff_address?: string | null;
}

export class BulkAssignTransportItemDto {
  @IsArray() @IsUUID('4', { each: true })
  item_ids: string[];

  @IsUUID() @IsOptional()
  supplier_id?: string;

  @IsString() @IsOptional() @MaxLength(255)
  supplier_name_text?: string | null;

  @IsUUID() @IsOptional()
  driver_id?: string;

  @IsString() @IsOptional() @MaxLength(255)
  driver_name_text?: string | null;

  @IsString() @IsOptional() @MaxLength(20)
  driver_phone_text?: string | null;

  @IsUUID() @IsOptional()
  vehicle_id?: string;

  @IsString() @IsOptional() @MaxLength(50)
  vehicle_no_text?: string | null;
}
