Modelo de dominio
Usuarios
Campos principales observados en repositorios/tipos:
id,name,email,password_hashrole(adminodistributor)is_active,created_at
Roles
Las constantes admin y distributor se comparten en los sistemas de tipos del backend y del frontend.
Paquetes
El modelo de paquete incluye destinatario, asignación, estado, peso/descripción, código de seguimiento, timestamps y address_id relacionado.
Estados de paquete
Estados del ciclo de vida definidos:
pendingassignedin_transitdeliveredundeliveredfailed
Las comprobaciones de transición se aplican en el servicio de estado de paquete.
Rutas
Las rutas representan planes de trabajo del distribuidor para una route_date y estado específicos:
plannedin_progresscompleted
Paradas
route_stops vincula la ruta y el paquete con metadatos de ejecución:
stop_orderestimated_arrivalactual_arrival
Tokens
La tabla tokens almacena múltiples tipos de token:
refresh_tokentracking_tokenreset_pwd_tokenactivate_account_token
Cada token soporta semánticas de expiración/revocación.
Seguimiento
El endpoint de seguimiento resuelve el resumen del paquete por token de seguimiento válido y devuelve los campos de estado/dirección/última actualización.
Eventos de email
Los eventos de email son disparados por los flujos de autenticación y estado de paquete (activación, reset, avisos de inicio de sesión, actualizaciones de estado de paquete).
Logs de estado
package_status_logs captura las transiciones de estado del paquete (old_status, new_status, actor, timestamp).
[!NOTE] Los archivos de migración del esquema SQL no están presentes en este snapshot del repositorio, por lo que el DDL de tablas se infiere de las consultas del repositorio (Requiere verificación para restricciones/índices exactos de columnas).