Solo puente entre código y modelo
Este archivo traduce enums del código a los nombres canónicos. La UI nunca debe mostrar nombres en MAYUSCULAS_CON_GUIONES_BAJOS ni en español en CamelCase: siempre pasa por la capa PackageStatusPresentation con etiqueta humana y siguiente acción.
Equivalencias de estados (legacy → oficial)¶
Documento de normalización — 2026-06-07 (revisado)
Este documento lista los nombres de estado que aparecen en código, diagramas, tablas o copias viejas de la documentación, y los mapea al nombre oficial definido en estados.md.
Regla: el nombre oficial es la única verdad. Los nombres listados aquí son legacy y deben migrarse a los oficiales en próximas iteraciones.
Verificación 2026-06-07: el código Kotlin usa MAYÚSCULAS_CON_GUIONES_BAJOS; la doc oficial usa snake_case en español. La migración a nombres oficiales es T-405 (abierta).
Por qué existe este documento¶
Durante la auditoría del 2026-06-07 se detectaron estados con nombres no oficiales dispersos por:
- Códigos Kotlin (enums) en la APK.
- Diagramas UML de estado.
- Tablas Markdown de varios documentos.
- Diagramas de secuencia.
- Capturas de texto en
srs.md,integraciones.md,reglas-negocio.md.
Estos nombres rompen la trazabilidad entre la doc funcional, el código y los diagramas.
Estados de prealerta (compra reportada)¶
| Estado oficial | Estados legacy encontrados | Notas |
|---|---|---|
borrador |
DRAFT |
Disponible en PurchaseReportStatus. |
reportada |
REPORTADA |
Disponible en PurchaseReportStatus. |
reportada_sin_tracking |
REPORTADA_SIN_TRACKING |
Disponible y usado por la prealerta demo. |
tracking_actualizado |
TRACKING_ACTUALIZADO |
Disponible en PurchaseReportStatus. |
vinculada_a_paquete |
VINCULADA_A_PAQUETE |
Disponible en PurchaseReportStatus. |
requiere_correccion |
REQUIERE_CORRECCION |
Disponible en PurchaseReportStatus. |
cancelada_por_usuario |
CANCELADA_POR_USUARIO |
Disponible en PurchaseReportStatus. |
cancelada_por_operador |
CANCELADA_POR_OPERADOR |
Disponible en PurchaseReportStatus. |
Estados del paquete físico¶
| Estado oficial | Estados legacy encontrados | Notas |
|---|---|---|
prealertado |
PREALERTADO, PENDIENTE_RECEPCION |
La capa de presentación traduce ambos; retirar el alias legacy en una iteración posterior. |
recibido_sin_identificar |
RECIBIDO_SIN_IDENTIFICAR |
Disponible. |
recibido_identificado |
RECIBIDO_IDENTIFICADO |
Disponible. |
en_servicio_adicional |
EN_SERVICIO_ADICIONAL |
Disponible. |
listo_para_consolidar |
LISTO_PARA_CONSOLIDAR, LISTO_PARA_ENVIAR |
LISTO_PARA_ENVIAR es alias legacy presentado como listo para agrupar. |
consolidado |
CONSOLIDADO |
Disponible. |
en_almacen |
EN_ALMACEN |
Disponible. |
esperando_instrucciones |
ESPERANDO_INSTRUCCIONES |
Disponible. |
pendiente_conciliacion |
PENDIENTE_CONCILIACION |
Disponible. |
reservado_para_consolidacion |
RESERVADO_PARA_CONSOLIDACION |
Disponible. |
en_camino_al_almacen |
— | Aún falta como enum explícito. |
en_transito |
DESPACHADO |
Alias legacy mostrado como "En camino a Cuba"; debe separarse de envío. |
entregado |
— | Aún falta como estado físico explícito. |
retenido_por_incidencia |
INCIDENCIA |
Alias legacy mostrado con texto canónico. |
devuelto_a_tienda |
DEVUELTO_A_TIENDA |
Disponible. |
descartado_o_cerrado |
DESCARTADO_O_CERRADO |
Disponible. |
Nota: el estado
DESPACHADOen código Kotlin se usa para "el paquete ya salió del almacén", que esdespachado_desde_almacenen el modelo de envío (shipment), no del paquete físico. Hay que distinguir las dos entidades.
Estados del envío (shipment)¶
| Estado oficial | Estados legacy encontrados | Notas |
|---|---|---|
borrador |
— | Coincide ✅ |
pendiente_kyc |
— | Coincide ✅ |
pendiente_destinatario |
— | Coincide ✅ |
pendiente_cotizacion |
— | Coincide ✅ |
cotizado |
— | Coincide ✅ |
pendiente_pago |
— | Coincide ✅ |
pagado |
procesando (en srs.md:622, seq-pago.md) |
Renombrar en docs |
en_preparacion |
— | Coincide ✅ |
despachado_desde_almacen |
despachado (en narrativa) |
Usar nombre oficial |
en_transito_a_cuba |
— | Coincide ✅ |
en_aduana |
— | Coincide ✅ |
liberado_de_aduana |
— | Coincide ✅ |
en_reparto |
— | Coincide ✅ |
entregado |
— | Coincide ✅ |
incidencia |
— | Coincide ✅ |
cancelado |
— | Coincide ✅ |
Estados del pago¶
| Estado oficial | Estados legacy encontrados | Notas |
|---|---|---|
pendiente |
pending, processing, procesando |
Renombrar en código y docs |
pago_reportado |
REPORTED, PAYMENT_REPORTED |
Comprobante manual informado y pendiente de validación. |
completado |
completed |
Renombrar en código |
fallido |
failed |
Renombrar en código |
reembolsado |
refunded |
Renombrar en código |
parcial |
— | Solo composición vía payment_method_mix |
Acción concreta: la entidad
paymentsenmodelo-datos.mdlínea 397 define el enum comopending/processing/completed/failed/refunded. Debe cambiarse a los nombres oficiales en español.
Estados del KYC¶
| Estado oficial | Estados legacy encontrados | Notas |
|---|---|---|
sin_iniciar |
— | Coincide ✅ |
borrador |
— | Coincide ✅ |
enviado |
— | Coincide ✅ |
en_revision |
— | Coincide ✅ |
aprobado |
— | Coincide ✅ |
rechazado |
— | Coincide ✅ |
requiere_mas_informacion |
— | Coincide ✅ |
vencido |
— | Coincide ✅ |
bloqueado_manual |
— | Coincide ✅ |
Estados de incidencias¶
| Estado oficial | Estados legacy encontrados | Notas |
|---|---|---|
abierta |
open |
Renombrar en incidents.status |
en_revision |
in_review |
Renombrar |
esperando_usuario |
waiting_user |
Renombrar |
esperando_operador |
waiting_operator |
Renombrar |
resuelta |
resolved |
Renombrar |
cerrada |
closed |
Renombrar |
Cómo aplicar estas equivalencias¶
- En código Kotlin: usar el
renamede IntelliJ para cada enum (PENDIENTE_TRACKING→REPORTADA_SIN_TRACKING, etc.). Actualizar todos loswheny losFakeDataSourcemockeados. - En diagramas: regenerar los
.pumlcon los nombres oficiales. - En docs: aplicar búsqueda y reemplazo con la tabla de arriba.
- En
integraciones.md: la filareturned | en_devoluciondebe renombrarse areturned | devuelto_a_tiendao el estado equivalente que aplique al transportista.
Trazabilidad: la tarea T-405 (en
tareas.md) cubre la mayoría de estas migraciones. Esta tabla es la especificación detallada de qué cambiar.