Get dashboard notifications and pending actions
GET/company/notifications/dashboard
Recupera información consolidada para el dashboard de notificaciones de la empresa, incluyendo notificaciones no leídas y alertas de acciones pendientes como subastas sin firma.
Objetivo
Permitir a las empresas visualizar en un solo endpoint todas las alertas críticas y notificaciones pendientes, optimizando la experiencia de usuario en el dashboard principal.
Casos de uso
- Dashboard principal: Carga inicial del dashboard empresarial
- Actualización en tiempo real: Refresco periódico de notificaciones
- Alertas de firma: Recordatorio de subastas pendientes de firma por parte de la empresa
- Monitor de actividad: Seguimiento de notificaciones no leídas
Flujo de datos
El endpoint implementa un sistema de priorización con slots limitados (máximo 6 items):
flowchart TD
A[Request Dashboard] --> B{User Authenticated?}
B -->|No| C[404 USER_NOT_FOUND]
B -->|Yes| D{Company Exists?}
D -->|No| E[401 CIA_NOT_FOUND]
D -->|Yes| F[Get Company Data]
F --> G{Missing Signature?}
G -->|Yes| H[companyMissingSignature: true]
G -->|No| I[companyMissingSignature: false]
H --> J[Find Auctions Without Signature]
I --> J
J --> K{Count > 6?}
K -->|Yes| L[Limit: 6 Auctions]
K -->|No| M[Use All Auctions]
L --> N[Calculate Available Slots]
M --> N
N --> O{Slots > 0?}
O -->|No| P[Return Dashboard]
O -->|Yes| Q[Get Unread Notifications]
Q --> R[Fill Available Slots]
R --> S[Return Dashboard - 200]
Campos de respuesta
companyMissingSignature (boolean):
true: La empresa no ha completado su proceso de firmafalse: La empresa tiene firma registrada
notSignedAuctionsCount (number, rango 0-6):
- Conteo de subastas adjudicadas que la empresa no ha firmado
- Valor máximo: 6 (límite del sistema)
- Cada subasta sin firma ocupa un slot en el dashboard
notSignedAuctions (array):
- Lista de subastas pendientes de firma
- Cada elemento contiene únicamente el campo
service_code - Formato:
[{"service_code": "AU12345"}, {"service_code": "AU12346"}]
notifications (array):
- Lista de notificaciones no leídas
- La cantidad de notificaciones varía según los slots disponibles
- Slots disponibles = 6 - notSignedAuctionsCount
- Si hay 6 subastas sin firma, no se incluyen notificaciones
- Si hay 0 subastas sin firma, se incluyen hasta 6 notificaciones
Lógica de priorización
- Las subastas sin firma tienen prioridad máxima
- Las notificaciones llenan los slots restantes
- Total de items nunca excede 6 elementos
Notas importantes
- Requiere autenticación con token JWT de empresa
- Solo retorna datos de la empresa del usuario autenticado
- Las subastas sin firma se limitan a máximo 6
- Las notificaciones se ordenan por
createdAtdescendente (más recientes primero) - Solo se incluyen notificaciones con
isRead: false - El campo
refen notificaciones viene poblado con elservice_codecorrespondiente
Errores
- 401 CIA_NOT_FOUND: El usuario no tiene una empresa asociada
- 404 USER_NOT_FOUND: El token no corresponde a un usuario válido
Request
Responses
- 200
- 401
- 404
Dashboard de notificaciones recuperado exitosamente.
El objeto de respuesta contiene hasta 6 elementos distribuidos entre:
- Subastas pendientes de firma (prioridad máxima)
- Notificaciones no leídas (llenan los slots restantes)
No autorizado. El usuario no tiene una empresa asociada o el token es inválido.
CIA_NOT_FOUND:
- El usuario autenticado no tiene una empresa asignada
- La empresa fue desactivada o eliminada
- El campo
usersen la colección de empresas no coincide con el usuario
Usuario no encontrado. El token JWT no corresponde a un usuario válido en el sistema.
USER_NOT_FOUND:
- El token contiene un ID de usuario que no existe
- El usuario fue eliminado después de generar el token