Cupones y Promociones
1. Definicion y proposito
Aplicar descuentos controlados a reservas para adquisicion y retencion.
2. Reglas de negocio
- Validar vigencia, cupo y elegibilidad por especialidad/sede/modalidad.
- Evitar reutilizacion cuando el cupon es de un solo uso por usuario.
- Calculo de descuento siempre en backend.
3. Endpoints propuestos
| Recurso | Metodo | Descripcion | Rol |
|---|---|---|---|
/api/v1/coupons/validate | POST | Validar cupon con contexto de cita. | PATIENT |
/api/v1/coupons/apply | POST | Aplicar cupon a intento de reserva. | PATIENT |
/api/v1/professional/coupons | POST | Crear cupon/promocion propia. | DOCTOR, ENTITY_ADMIN |
/api/v1/professional/coupons | GET | Listar cupones propios. | DOCTOR, ENTITY_ADMIN |
/api/v1/professional/coupons/{id} | PATCH | Editar cupon propio. | DOCTOR, ENTITY_ADMIN |
/api/v1/admin/coupons/{id}/status | PATCH | Aprobar/pausar/rechazar cupón. | SUPERADMIN |
4. Errores esperados
404: cupon inexistente.409: cupon agotado/reutilizado.422: cupon no elegible para esa cita.
5. Trazabilidad
- Relacionado con
checkout-pagos.md,agenda-citas.md,auditoria-y-verificacion.md.