export type TravelPreferences = {
  beach?: number;      // 0-10 rating
  pool?: number;
  golf?: number;
  spa?: number;
  food?: number;
  nightlife?: number;
  shopping?: number;
  culture?: number;
  outdoor?: number;
  family?: number;
};

export type SearchCriteria = {
  origin: string;
  destinations: string[];
  startDate: string;      // YYYY-MM-DD
  endDate: string;        // YYYY-MM-DD
  tripLengthMin: number;
  tripLengthMax: number;
  budget?: number | null;
  currency?: string;
  nonStopOnly?: boolean;
  sources?: string[];     // which providers to include
  preferences?: TravelPreferences;  // feature importance ratings
};

export type Deal = {
  id: string;
  title: string;
  source: string;
  link: string;
  price?: number | null;
  currency?: string | null;
  startDate?: string | null;
  endDate?: string | null;
  nights?: number | null;
  destination?: string | null;
  origin?: string | null;
  stops?: number | null;
  meta?: Record<string, any>;
  score?: number;
};
