import { MapPin, Star, Users, Calendar, ExternalLink, Castle, FerrisWheel, Waves, Tent } from 'lucide-react';
import { Card, CardContent } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import { Park } from '@/types/database';
interface ParkListViewProps {
parks: Park[];
onParkClick: (park: Park) => void;
}
export function ParkListView({ parks, onParkClick }: ParkListViewProps) {
const getStatusColor = (status: string) => {
switch (status) {
case 'operating': return 'bg-green-500/20 text-green-400 border-green-500/30';
case 'seasonal': return 'bg-yellow-500/20 text-yellow-400 border-yellow-500/30';
case 'under_construction': return 'bg-blue-500/20 text-blue-400 border-blue-500/30';
default: return 'bg-red-500/20 text-red-400 border-red-500/30';
}
};
const getParkTypeIcon = (type: string) => {
switch (type) {
case 'theme_park': return ;
case 'amusement_park': return ;
case 'water_park': return ;
case 'family_entertainment': return ;
default: return ;
}
};
const formatParkType = (type: string) => {
return type.split('_').map(word =>
word.charAt(0).toUpperCase() + word.slice(1)
).join(' ');
};
return (
{parks.map((park) => (
onParkClick(park)}
>
{/* Image */}
{park.card_image_url ? (

) : (
{getParkTypeIcon(park.park_type)}
)}
{/* Status Badge */}
{park.status.replace('_', ' ').toUpperCase()}
{/* Content */}
{/* Header */}
{park.name}
{getParkTypeIcon(park.park_type)}
{park.location && (
{park.location.city && `${park.location.city}, `}
{park.location.state_province && `${park.location.state_province}, `}
{park.location.country}
)}
{/* Rating */}
{park.average_rating > 0 && (
{park.average_rating.toFixed(1)}
({park.review_count})
)}
{/* Description */}
{park.description && (
{park.description}
)}
{/* Tags */}
{formatParkType(park.park_type)}
{park.opening_date && (
Opened {new Date(park.opening_date).getFullYear()}
)}
{/* Stats and Actions */}
{park.ride_count || 0}
rides
{park.coaster_count || 0}
{park.review_count > 0 && (
{park.review_count} reviews
)}
))}
);
}