/**
 * @ai-summary Google Maps API types
 */

export interface GooglePlacesResponse {
  results: GooglePlace[];
  status: string;
  next_page_token?: string;
}

export interface GooglePlace {
  place_id: string;
  name: string;
  vicinity: string;
  geometry: {
    location: {
      lat: number;
      lng: number;
    };
  };
  opening_hours?: {
    open_now: boolean;
  };
  rating?: number;
  photos?: Array<{
    photo_reference: string;
  }>;
  price_level?: number;
  types: string[];
}

export interface GooglePlaceDetails {
  result: {
    place_id: string;
    name: string;
    formatted_address: string;
    geometry: {
      location: {
        lat: number;
        lng: number;
      };
    };
    opening_hours?: {
      open_now: boolean;
      weekday_text: string[];
    };
    rating?: number;
    photos?: Array<{
      photo_reference: string;
    }>;
    formatted_phone_number?: string;
    website?: string;
  };
  status: string;
}

export interface GoogleTextSearchResponse {
  results: GooglePlace[];
  status: string;
  next_page_token?: string;
}