Reservas
Una reserva es una franja en una villa para un cliente. Lleva dos estados independientes: uno de negocio
(HOLD, CONFIRMED, COMPLETED, CANCELLED, EXPIRED) y uno financiero (UNPAID,
PARTIALLY_PAID, PAID, REFUNDED). Una reserva confirmada que sigue sin pagar es un caso normal,
nunca una anomalía — no reduzcas los dos a un solo indicador.
priceAmount, currency y bufferMinutes se copian en la reserva al crearla.
Cambiar después una cuadrícula de tarifas o una regla nunca reescribe el pasado.
Toda escritura aquí pasa por el mismo servicio que usa la aplicación. La disponibilidad, el margen, el horario de apertura, los precios y los límites del plan se aplican una sola vez, en un solo lugar — la API no puede saltárselos.