Skip to main content

Endpoints de reservas

Referencia de la superficie de reservas de vivla-api. Las rutas incluyen su versión (/v1/..., /v2/...); no hay prefijo global. Las rutas de calendario comparten prefijo con reservas (bookings y admin/bookings).
La columna Acceso distingue endpoints de la app del copropietario (usuario autenticado) de los de panel (protegidos por PermissionGuard + @RequirePermission(...)). El permiso exacto se indica entre paréntesis.

Público v1 — app del copropietario

src/bookings/v1/bookings.controller.ts · path bookings, versión 1.
MétodoRutaQué hace
GET/v1/bookings/mineReservas del usuario autenticado (filtro status por query).
GET/v1/bookings/to-rentReservas publicadas para alquilar dentro de la red.
GET/v1/bookings/to-exchangeReservas publicadas para intercambio.
GET/v1/bookings/:idDetalle de una reserva.
PUT/v1/bookings/update-info/:idActualiza información de la reserva (huéspedes, notas, extras).
PUT/v1/bookings/update/:idCambia el tipo de reserva (disfrute / intercambio / alquiler).
DELETE/v1/bookings/cancel/:idCancela la reserva (o anula la invitación si eres invitado).
GET/v1/bookings/available-stays/:idEstancias disponibles del usuario en esa casa, por temporada.
POST/v1/bookings/book/:idCrea una reserva de disfrute.
POST/v1/bookings/rent/:idSolicita el alquiler de una reserva publicada.
POST/v1/bookings/exchange/:idSolicita el intercambio de una reserva publicada (gasta llaves).
POST/v1/bookings/exchange-last-hourIntercambio de última hora sobre un slot disponible (home, stay, info).
POST/v1/bookings/:id/stay-reviewRegistra el NPS de la estancia.
POST/v1/bookings/:id/arrival-reviewRegistra el NPS de calidad a la llegada.

Público v2 — experiencias y wallet de llaves

src/bookings/v2/bookings.controller.ts · path bookings, versión 2.
MétodoRutaQué hace
GET/v2/bookings/experiences/:locationExperiencias por ubicación (localizadas por idioma).
GET/v2/bookings/:booking/experiencesExperiencias asociadas a una reserva.
POST/v2/bookings/register-experienceRegistra (selecciona) una experiencia.
DELETE/v2/bookings/remove-experienceDeselecciona una experiencia.
GET/v2/bookings/keys/my-walletMonedero de llaves propio (saldo).
GET/v2/bookings/keys/my-movementsMovimientos de llaves propios (paginado por page).
GET/v2/bookings/available-stays/:idEstancias disponibles (versión v2).

Admin v1 — panel CX

src/bookings/v1/bookings-admin.controller.ts · path admin/bookings, versión 1. Todos bajo PermissionGuard.
MétodoRutaAccesoQué hace
GET/v1/admin/bookings/pending-exchangesread:exchangesReservas pendientes de intercambio.
DELETE/v1/admin/bookings/delete-test-bookingsadminBorra reservas de prueba.
POST/v1/admin/bookings/transfer/:homeIdadminEjecuta la transferencia de reservas de una casa.
GET/v1/admin/bookingsread:bookingsListado con filtros (status, type, home, from, to, user, gm, location, paginado).
GET/v1/admin/bookings/:idread:bookingsDetalle de una reserva.
PUT/v1/admin/bookings/:idedit:bookingsModifica una reserva.
POST/v1/admin/bookings/:id/publish-third-homeedit:bookingsPublica la reserva en ThirdHome.
PUT/v1/admin/bookings/:id/unpublish-third-homeedit:bookingsRetira la publicación de ThirdHome.
PUT/v1/admin/bookings/:id/exchange-third-homeedit:bookingsMarca la reserva como intercambiada en ThirdHome (requiere asistente).
PUT/v1/admin/bookings/:id/change-typeedit:bookingsCambia el tipo de reserva.
DELETE/v1/admin/bookings/:id/liberateedit:bookingsRetira asistentes y libera la reserva.
POST/v1/admin/bookings/:id/rentedit:bookingsAlquila la reserva con precio manual (price, assistant).
PUT/v1/admin/bookings/:id/rent/approveedit:bookingsAprueba o rechaza el alquiler (approve por query).
POST/v1/admin/bookings/:id/exchangeedit:bookingsIntercambia la reserva a nombre de un usuario.
DELETE/v1/admin/bookings/:id/canceledit:bookingsCancela la reserva.
POST/v1/admin/bookings/registeredit:bookingsRegistra una reserva manualmente.

Admin v2 — llaves

src/bookings/v2/bookings-admin.controller.ts · path admin/bookings, versión 2. Todos bajo PermissionGuard.
MétodoRutaAccesoQué hace
POST/v2/admin/bookings/keys/:userId/add-referral-bonusedit:exchangesAñade el bono de referido (+2 llaves).
POST/v2/admin/bookings/keys/:userId/register-movementedit:exchangesRegistra un movimiento manual de llaves.
PUT/v2/admin/bookings/keys/transferedit:exchangesTraspasa llaves entre usuarios (from, to, amount).
GET/v2/admin/bookings/keys/movementsread:exchangesListado de movimientos (filtros y paginación).
GET/v2/admin/bookings/keys/walletsread:exchangesListado de monederos.
GET/v2/admin/bookings/keys/user-wallet/:userIdread:exchangesMonedero de un usuario.
GET/v2/admin/bookings/keys/chartsread:exchangesDatos para gráficas (period).
GET/v2/admin/bookings/keys/metricsread:exchangesMétricas de llaves (from, to).
GET/v2/admin/bookings/keys/homesread:exchangesCoste en llaves de las casas (filtros).
GET/v2/admin/bookings/keys/home/:homeIdread:exchangesFechas con coste en llaves de una casa.
POST/v2/admin/bookings/keys/home/:homeId/setedit:exchangesFija el coste en llaves de una casa+temporada (season, keys).

Calendario

Público en src/bookings/calendars/v1/calendars.controller.ts; admin en calendars-admin.controller.ts. Comparten prefijo con reservas.
MétodoRutaAccesoQué hace
GET/v1/bookings/home-calendar/:idAppCalendario de una casa (slots con disponibilidad, temporada y coste).
PUT/v1/admin/bookings/slots/updateedit:calendarsModifica un slot.
DELETE/v1/admin/bookings/slots/deleteedit:calendarsElimina un slot.
POST/v1/admin/bookings/slots/createedit:calendarsCrea un slot.
POST/v1/admin/bookings/slots/duplicate-yearedit:calendarsDuplica los slots de un año a otro (year, calendarRef).
GET/v1/admin/bookings/calendarsread:bookingsCalendarios de reservas con filtros (homes, from, to, location, paginado).