{"title":"Sistema de Reservas - API Documentation","version":"1.0.0","baseUrl":"https://reservations.neuralflow.space","endpoints":{"ivr":{"startSession":{"method":"POST","path":"/api/ivr","description":"Start a new IVR session","body":{"action":"start","phoneNumber":"string (required, Colombian format)","restaurantId":"uuid (optional)"},"response":{"sessionId":"string","message":"string (TTS message to play)","expectedInput":"string","hints":"string"}},"processInput":{"method":"POST","path":"/api/ivr","description":"Process IVR user input","body":{"action":"process","sessionId":"string (required)","input":"string (user speech or DTMF input)","inputType":"enum (speech, dtmf)"}},"endSession":{"method":"DELETE","path":"/api/ivr?sessionId=xxx","description":"End IVR session and release locks"}},"admin":{"listReservations":{"method":"GET","path":"/api/admin/reservations","description":"List reservations for admin panel","params":{"status":"Filter by status","date":"Filter by date","restaurantId":"Filter by restaurant","limit":"Max results","offset":"Pagination offset"}},"getPendingQueue":{"method":"GET","path":"/api/admin/reservations/pending","description":"Get pending reservations queue with statistics","params":{"daysAhead":"Number of days to look ahead (default: 7)"}},"approveReservation":{"method":"POST","path":"/api/admin/reservations/{id}","description":"Approve a pending reservation","body":{"action":"approve"}},"rejectReservation":{"method":"POST","path":"/api/admin/reservations/{id}","description":"Reject a pending reservation","body":{"action":"reject","reason":"string (optional)"}}},"health":{"check":{"method":"GET","path":"/api/health","description":"Health check endpoint","response":{"status":"ok | degraded","timestamp":"ISO datetime","services":{"database":"ok | error","redis":"ok | error"}}}}},"reservationCodes":{"format":"NOMBRE-XXXX","example":"FRANCISCO-7708, JOSE-1234","description":"First name (uppercase, no accents) + 4 random digits. Case-insensitive search."},"statusCodes":{"PENDIENTE":"Awaiting admin approval","CONFIRMADO":"Confirmed by customer/admin","CANCELADO":"Cancelled","NO_SHOW":"Customer did not arrive"},"sources":{"IVR":"Created via phone call","WHATSAPP":"Created via WhatsApp","MANUAL":"Created by staff manually","WEB":"Created via web interface"}}