1.4 KiB
1.4 KiB
SOP: Lógica y Hooks
Gestión de Estado (Hooks)
useReservations
- Propósito: Abstracción de Supabase para CRUD de reservas.
- Estado: Lista de reservas (
data),loading,error. - Métodos:
fetchReservations():Select * from reservations.createReservation(data): Insert.updateReservation(id, data): Update. Detección de cambio engovernment_registrationpara payload de Webhook.deleteReservation(id): Delete.
- Realtime: Suscripción a cambios en tabla
reservationspara actualizar vista automáticamente.
useFormCalculation (dentro del Form)
- Propósito: Cálculos derivados instantáneos.
- Input: Valores actuales del form (watch).
- Output:
totalPeople,totalDays.
Lógica de Webhook (Simulación en Cliente)
Nota: Idealmente esto se hace con Database Triggers, pero por simplicidad inicial y control, lo gestionaremos en la capa de servicio del cliente (
useReservations) antes de enviar a Supabase, o inmediatamente después del éxito.
Regla de Disparo:
- Capturar valor previo de
government_registration(en Update). - Si
previos_valuees EMPTY/NULL Ynew_valueNO es EMPTY: -> EjecutartriggerRegistrationWebhook(reservation).
Endpoint Mock:
- URL: (Definir en .env)
- Method: POST
- Body: Definido en
gemini.md.
Tipos (TypeScript)
Definir interfaces estrictas en src/types/supabase.ts (o generado) y src/types/app.ts.