Matriz de Estados de Negocio y Transiciones
Esta matriz define el comportamiento permitido para las entidades transaccionales principales.
1. Appointment (cita)
Estados: REQUESTED, CONFIRMED, COMPLETED, CANCELLED, NO_SHOW.
| Estado actual | Evento | Estado siguiente | Permitido | Regla |
|---|---|---|---|---|
REQUESTED | CONFIRM | CONFIRMED | Sí | Slot disponible + validación convenio |
REQUESTED | CANCEL | CANCELLED | Sí | Paciente o admin dentro de ventana |
CONFIRMED | COMPLETE | COMPLETED | Sí | Solo profesional/admin |
CONFIRMED | CANCEL | CANCELLED | Sí | Política de cancelación vigente |
CONFIRMED | MARK_NO_SHOW | NO_SHOW | Sí | Ventana de no-show cumplida |
COMPLETED | CANCEL | CANCELLED | No | Estado terminal |
CANCELLED | CONFIRM | CONFIRMED | No | Crear nueva cita |
NO_SHOW | COMPLETE | COMPLETED | No | Requiere nueva cita |
2. Accreditation (profesional)
Estados: PENDING, APPROVED, REJECTED, SUSPENDED.
| Estado actual | Evento | Estado siguiente | Permitido | Regla |
|---|---|---|---|---|
PENDING | APPROVE | APPROVED | Sí | Validación documental completa |
PENDING | REJECT | REJECTED | Sí | Motivo obligatorio |
APPROVED | SUSPEND | SUSPENDED | Sí | Incumplimiento o investigación |
SUSPENDED | REINSTATE | APPROVED | Sí | Cierre de investigación |
REJECTED | RESUBMIT | PENDING | Sí | Nueva evidencia cargada |
REJECTED | APPROVE | APPROVED | No | Debe pasar por PENDING |
3. Review (reseña)
Estados: PENDING, PUBLISHED, REJECTED.
| Estado actual | Evento | Estado siguiente | Permitido | Regla |
|---|---|---|---|---|
PENDING | MODERATE_APPROVE | PUBLISHED | Sí | Moderación automática/manual |
PENDING | MODERATE_REJECT | REJECTED | Sí | Motivo obligatorio |
PUBLISHED | UNPUBLISH | REJECTED | Sí | Reportes válidos o incumplimiento |
REJECTED | PUBLISH | PUBLISHED | No | Requiere nueva reseña |
4. Coupon (promoción)
Estados: DRAFT, ACTIVE, PAUSED, REJECTED, EXPIRED.
| Estado actual | Evento | Estado siguiente | Permitido | Regla |
|---|---|---|---|---|
DRAFT | ACTIVATE | ACTIVE | Sí | Reglas comerciales y vigencia válidas |
ACTIVE | PAUSE | PAUSED | Sí | Owner o admin |
PAUSED | RESUME | ACTIVE | Sí | Vigencia no vencida |
ACTIVE | EXPIRE | EXPIRED | Sí | Fin de vigencia o agotado |
DRAFT | REJECT | REJECTED | Sí | Moderación |
EXPIRED | ACTIVATE | ACTIVE | No | Crear cupón nuevo |
5. Perfil de usuario / onboarding
Estados de onboarding: NOT_STARTED, IN_PROGRESS, COMPLETED, BLOCKED.
| Estado actual | Evento | Estado siguiente | Permitido | Regla |
|---|---|---|---|---|
NOT_STARTED | START | IN_PROGRESS | Sí | Registro inicial validado |
IN_PROGRESS | FINISH | COMPLETED | Sí | Campos obligatorios completos |
IN_PROGRESS | BLOCK | BLOCKED | Sí | Riesgo/fraude o incumplimiento |
BLOCKED | UNBLOCK | IN_PROGRESS | Sí | Resolución de soporte/compliance |
COMPLETED | RESET | IN_PROGRESS | Sí | Cambio estructural de perfil |
6. Reglas transversales
- Toda transición debe auditarse (
who,when,from,to,reason). - Estados terminales no permiten mutaciones funcionales no explícitas.
- Cualquier transición inválida debe responder
409 CONFLICT. - Cambios de estado críticos deben emitir evento de dominio (ver
17-catalogo-eventos-dominio.md).