diff --git a/susconecta/app/(main-routes)/calendar/page.tsx b/susconecta/app/(main-routes)/calendar/page.tsx index 519ba4b..f6f4b68 100644 --- a/susconecta/app/(main-routes)/calendar/page.tsx +++ b/susconecta/app/(main-routes)/calendar/page.tsx @@ -121,6 +121,40 @@ export default function AgendamentoPage() { } }; + // Mapeia cor do calendário -> status da API + const statusFromColor = (color?: string) => { + switch ((color || "").toLowerCase()) { + case "green": return "confirmed"; + case "orange": return "pending"; + case "red": return "canceled"; + default: return "requested"; + } + }; + + // Envia atualização para a API e atualiza UI + const handleEventUpdate = async (id: string, partial: Partial) => { + try { + const payload: any = {}; + if (partial.startTime) payload.scheduled_at = partial.startTime.toISOString(); + if (partial.startTime && partial.endTime) { + const minutes = Math.max(1, Math.round((partial.endTime.getTime() - partial.startTime.getTime()) / 60000)); + payload.duration_minutes = minutes; + } + if (partial.color) payload.status = statusFromColor(partial.color); + if (typeof partial.description === "string") payload.notes = partial.description; + + if (Object.keys(payload).length) { + const api = await import('@/lib/api'); + await api.atualizarAgendamento(id, payload); + } + + // Otimista: reflete mudanças locais + setManagerEvents((prev) => prev.map((e) => (e.id === id ? { ...e, ...partial } : e))); + } catch (e) { + console.warn("[Calendário] Falha ao atualizar agendamento na API:", e); + } + }; + return (
@@ -164,7 +198,11 @@ export default function AgendamentoPage() {
) : (
- +
)}
diff --git a/susconecta/components/features/general/event-manager.tsx b/susconecta/components/features/general/event-manager.tsx index 697b2e6..e974ca9 100644 --- a/susconecta/components/features/general/event-manager.tsx +++ b/susconecta/components/features/general/event-manager.tsx @@ -515,7 +515,7 @@ export function EventManager({ {/* Event Dialog */} - + {isCreating ? "Criar Evento" : "Detalhes do Evento"} @@ -528,7 +528,7 @@ export function EventManager({ isCreating ? setNewEvent((prev) => ({ ...prev, title: e.target.value })) @@ -542,7 +542,7 @@ export function EventManager({