import { IsIn, IsOptional, IsUUID } from 'class-validator';

/**
 * Read-side filter for /service-payment-collections?booking_id=…
 * MD Chart and the Booking Detail page use this to fetch every
 * collection row + latest live confirmation in one shot.
 */
export class ListCollectionsQueryDto {
  @IsOptional()
  @IsUUID()
  booking_id?: string;

  @IsOptional()
  @IsIn(['PENDING', 'COLLECTED', 'CANCELLED'])
  status?: 'PENDING' | 'COLLECTED' | 'CANCELLED';

  @IsOptional()
  @IsIn(['TRANSPORT', 'ACTIVITY', 'SPECIAL'])
  service_type?: 'TRANSPORT' | 'ACTIVITY' | 'SPECIAL';
}
