// Route Generation Type Definitions

export interface UserPreferences {
  duration: number;
  interests: string[];
  budget: 'low' | 'medium' | 'high';
  travelStyle: 'relaxed' | 'moderate' | 'intensive';
  startDate?: string;
}

export interface PlaceRecommendation {
  id: string;
  name: string;
  description: string;
  latitude: number;
  longitude: number;
  duration: number;
  category: string;
  priority: number;
  imageUrl?: string;
  coordinates?: { lat: number; lng: number };
}

export interface DayRoute {
  day: number;
  date: string;
  places: PlaceRecommendation[];
  totalDuration: number;
}

export interface RouteRecommendation {
  days: DayRoute[];
  totalDistance: number;
  estimatedCost: number;
  highlights: string[];
}

export interface BasePlace {
  id: string;
  name: string;
  description?: string;
  rating?: number;
}

export interface POI extends BasePlace {
  latitude: number;
  longitude: number;
  category: 'restaurant' | 'attraction' | 'hotel' | 'activity' | 'nature' | 'shopping';
  imageUrl?: string;
  type?: string;
}

export interface Place extends POI {
  duration?: string;
  distanceFromPreviousKm?: number;
  travelTimeFromPreviousMinutes?: number;
  visitDurationMinutes?: number;
  weight?: number;
  priority?: number;
}
