import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { Edit, MapPin, Zap, Building2, Image, Package } from 'lucide-react'; import { type SubmissionItemWithDeps } from '@/lib/submissionItemsService'; interface ItemReviewCardProps { item: SubmissionItemWithDeps; onEdit: () => void; onStatusChange: (status: 'approved' | 'rejected') => void; } export function ItemReviewCard({ item, onEdit, onStatusChange }: ItemReviewCardProps) { const getItemIcon = () => { switch (item.item_type) { case 'park': return ; case 'ride': return ; case 'manufacturer': case 'operator': case 'property_owner': case 'designer': return ; case 'ride_model': return ; case 'photo': return ; default: return null; } }; const getStatusColor = () => { switch (item.status) { case 'approved': return 'default'; case 'rejected': return 'destructive'; case 'pending': return 'secondary'; default: return 'outline'; } }; const renderItemPreview = () => { const data = item.item_data; switch (item.item_type) { case 'park': return (

{data.name}

{data.description}

{data.park_type && {data.park_type}} {data.status && {data.status}}
); case 'ride': return (

{data.name}

{data.description}

{data.category && {data.category}} {data.status && {data.status}}
); case 'manufacturer': case 'operator': case 'property_owner': case 'designer': return (

{data.name}

{data.description}

{data.founded_year && ( Founded {data.founded_year} )}
); case 'ride_model': return (

{data.name}

{data.description}

{data.category && {data.category}} {data.ride_type && {data.ride_type}}
); case 'photo': return (
{data.photos?.slice(0, 3).map((photo: any, idx: number) => ( {photo.caption ))}
{data.photos?.length > 3 && (

+{data.photos.length - 3} more photo(s)

)}
); default: return (
No preview available
); } }; return (
{getItemIcon()} {item.item_type.replace('_', ' ').toUpperCase()}
{item.status} {item.status === 'pending' && ( )}
{renderItemPreview()} {item.depends_on && (

Depends on another item in this submission

)} {item.rejection_reason && (

Rejection Reason:

{item.rejection_reason}

)}
); }