export interface RideCreditFilters {
  // Search
  searchQuery?: string;
  selectedSearchItems?: string[]; // Format: "ride:id", "park:id", "manufacturer:id"
  
  // Category (Multi-select)
  categories?: string[];
  
  // Geographic
  countries?: string[];
  statesProvinces?: string[];
  cities?: string[];
  
  // Park
  parks?: string[];
  parkTypes?: string[];
  operators?: string[];
  propertyOwners?: string[];
  
  // Ride Details
  manufacturers?: string[];
  designers?: string[];
  rideModels?: string[];
  coasterTypes?: string[];
  seatingTypes?: string[];
  intensityLevels?: string[];
  trackMaterial?: string[];
  
  // Statistics
  minRideCount?: number;
  maxRideCount?: number;
  minSpeed?: number;
  maxSpeed?: number;
  minHeight?: number;
  maxHeight?: number;
  minLength?: number;
  maxLength?: number;
  minInversions?: number;
  hasInversions?: boolean;
  
  // Dates
  firstRideDateFrom?: Date;
  firstRideDateTo?: Date;
  lastRideDateFrom?: Date;
  lastRideDateTo?: Date;
  rideOpeningYearFrom?: number;
  rideOpeningYearTo?: number;
  
  // User Experience
  hasNotes?: boolean;
  hasPhotos?: boolean;
  hasRating?: boolean;
  minUserRating?: number;
  
  // Ride Status
  rideStatuses?: string[];
}

export type FilterPreset = 
  | 'mostRidden'
  | 'recentlyAdded'
  | 'singleRides'
  | 'needRating'
  | 'highlyRated'
  | 'all';
