import React, { useEffect, useState } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; import { ArrowLeft, MapPin, Calendar, Clock, DollarSign } from 'lucide-react'; import { useAuth } from '../contexts/AuthContext'; import { getAgendas } from '../services/apiService'; import EventScheduler from '../components/EventScheduler'; import EventLogistics from '../components/EventLogistics'; const EventDetails: React.FC = () => { const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); const { token } = useAuth(); const [event, setEvent] = useState(null); const [loading, setLoading] = useState(true); const [calculatedStats, setCalculatedStats] = useState({ studios: 0 }); useEffect(() => { if (id && token) { loadEvent(); } }, [id, token]); const loadEvent = async () => { // Since we don't have a getEventById, we list and filter for now (MVP). // Ideally backend should have GET /agenda/:id const res = await getAgendas(token!); if (res.data) { const found = res.data.find((e: any) => e.id === id); setEvent(found); } setLoading(false); }; if (loading) return
Carregando detalhes do evento...
; if (!event) return
Evento não encontrado.
; const formattedDate = new Date(event.data_evento).toLocaleDateString(); return (
{/* Header */}

{event.empresa_nome} - {event.tipo_evento_nome} {event.status}

ID: {event.fot_id}

{/* Event Info Card (Spreadsheet Header Style) */}

Data

{formattedDate}

Local:

{(() => { const localVal = event['local_evento'] || event.local || event.local_evento; const isUrl = localVal && String(localVal).startsWith('http'); if (isUrl) { return ( {event.locationName || "Ver Localização no Mapa"} ); } return

{localVal || "Não informado"}

; })()}

{event.endereco}

Horário

{event.horario}

?

Observações

{event.observacoes_evento || "Nenhuma observação."}

{/* Main Content: Scheduling & Logistics */}
{/* Left: Scheduling (Escala) */} p.professional_id)} onUpdateStats={setCalculatedStats} defaultTime={event.horario} /> {/* Right: Logistics (Carros) */}
p.professional_id)} /> {/* Equipment / Studios Section (Placeholder for now based on spreadsheet) */}

{/* Using DollarSign as generic icon for assets/inventory for now, map to Camera later */} Equipamentos & Estúdios

Qtd. Estúdios (Automático): {calculatedStats.studios}
Ponto de Foto: {event.qtd_ponto_foto || 0}

Notas de Equipamento: