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 { useData } from '../contexts/DataContext'; import { getAgendas } from '../services/apiService'; import { UserRole } from '../types'; import EventScheduler from '../components/EventScheduler'; import EventLogistics from '../components/EventLogistics'; const EventDetails: React.FC = () => { const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); const { user } = useAuth(); const { events, loading } = useData(); const [calculatedStats, setCalculatedStats] = useState({ studios: 0 }); const event = events.find(e => e.id === id); // No local loading state needed if events are loaded globally, or check if events.length === 0 && loading if (!event) return
Evento não encontrado ou carregando...
; if (!event) return
Evento não encontrado.
; // Check if user can view logistics const canViewLogistics = user?.role !== UserRole.AGENDA_VIEWER && user?.role !== UserRole.RESEARCHER; // Use event.date which is already YYYY-MM-DD from DataContext const formattedDate = new Date(event.date + "T00:00:00").toLocaleDateString(); return (
{/* Header */}

{(() => { const name = event.empresa_nome || event.name; const type = event.tipo_evento_nome || event.type; return name === type ? name : `${name} - ${type}`; })()} {event.status}

{(event.fot_id || event.fot || event.id) && (

ID: {event.fot_id || event.fot || event.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 || event.time || "Não definido"}

?

Observações

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

{/* Main Content: Scheduling & Logistics */}
{/* Right: Logistics (Carros) - Only visible if user has permission */} {canViewLogistics && (
a.professionalId)} /> {/* 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: