Alquiler
El alquiler pone una reserva a disposición para que se alquile dentro de la red. El precio lo fija a mano un admin; no hay ninguna fórmula de comisión en el código.
Flujo del copropietario
El copropietario publica su reserva como disponible para alquiler cambiando su tipo, y solicita el alquiler de reservas publicadas con POST /v1/bookings/rent/:id (src/bookings/v1/bookings.service.ts:877). Para que una reserva se pueda solicitar debe estar libre y activa (approval = FREE, status = ACTIVE) (bookings.service.ts:899).
Flujo del admin (panel CX)
El alquiler efectivo lo gestiona un admin (src/bookings/v1/bookings.service.ts:2162):
- Alquilar —
POST /v1/admin/bookings/:id/rent. Exige price > 0 (manual) y datos del asistente (nombre + email, o un id de usuario). La reserva debe ser de tipo alquiler y estar libre (RENTAL + FREE) (bookings.service.ts:2171 y :2202). Por defecto queda APPROVED, salvo que se pase status = pending (bookings.service.ts:2249).
- Aprobar o rechazar —
PUT /v1/admin/bookings/:id/rent/approve. Exige que la reserva esté activa, de tipo alquiler y en estado pendiente (RENTAL + PENDING) (bookings.service.ts:2285).
- Liberar —
DELETE /v1/admin/bookings/:id/liberate. Retira asistentes. Solo procede si la reserva está activa y es una de estas combinaciones (bookings.service.ts:2120):
- disfrute intercambiada en ThirdHome (
OWN + TH_EXCHANGED),
- alquiler aprobado (
RENTAL + APPROVED),
- intercambio aprobado (
EXCHANGE + APPROVED).
Precio
Comisión de alquiler (p. ej. 15% / 20-25%): PENDIENTE confirmar por CX/negocio. El código no contiene ninguna fórmula ni porcentaje de comisión. El price del alquiler es un número que introduce el admin a mano. Cualquier cálculo de comisión ocurre fuera del sistema.
Elegibilidad “tras 2 rondas” u otros requisitos para alquilar: PENDIENTE confirmar por CX/negocio. El código solo comprueba el estado de la reserva (RENTAL + FREE), no antigüedad ni número de rondas.
Hostaway
La integración con Hostaway es solo un enlace: si la casa tiene hostawayId y está definida la variable RENTALS_URL, se compone la URL externa RENTALS_URL + hostawayId (src/bookings/v1/bookings.repository.ts:1296). No hay sincronización de datos ni llamadas a la API de Hostaway desde vivla-api.