Ir al contenido

Gestión de Documentos

El sistema de gestión de documentos permite a los usuarios subir, organizar y gestionar sus documentos de forma segura.

Los documentos se almacenan en Backblaze B2 usando la estructura:

users/
{userId}/
documents.json # Metadatos de documentos
personal.json # Datos del perfil personal
guarantees.json # Datos de garantías

Endpoint: POST /api/documents/upload

Requisitos:

  • Sesión válida
  • Archivo válido (PDF, imágenes, etc.)
  • Tamaño máximo: 10MB
  • Tipo de documento válido

Campos:

  • file - Archivo a subir
  • documentType - Tipo de documento
  • expiryDate - Fecha de vencimiento (opcional)
  • description - Descripción (opcional)

Endpoint: GET /api/documents/profile?type={type}

Tipos disponibles:

  • personal - Datos personales
  • guarantees - Garantías

Endpoint: POST /api/documents/profile

Body:

{
"type": "personal",
"data": { ... }
}
  • Carpeta Tributaria
  • Certificado de Antecedentes
  • Certificado de Vigencia
  • Otros documentos
  • Carpeta Tributaria
  • Certificado de Vigencia
  • Poderes
  • Otros documentos

El sistema incluye alertas automáticas para documentos próximos a vencer:

  • Alerta temprana: 30 días antes del vencimiento
  • Alerta crítica: 7 días antes del vencimiento
  • Notificación: Email automático al usuario

Archivo: src/utils/documentExpiry.ts

Archivo: src/utils/documentValidation.ts

Validaciones:

  • Tipo de archivo permitido
  • Tamaño máximo (10MB)
  • Formato válido
  • Sanitización de nombres de archivo

Endpoint: POST /api/documents/share

Permite compartir documentos con un token único y seguro.

Características:

  • Token único por compartir
  • Expiración configurable
  • Acceso controlado
  • Log de accesos

Archivo: src/utils/profileCompleteness.ts

El sistema calcula la completitud del perfil basándose en:

  • Documentos requeridos subidos
  • Datos personales completados
  • Información de garantías
  • Sanitización: Todos los nombres de archivo se sanitizan
  • Validación: Tipos y tamaños de archivo validados
  • Autenticación: Requiere sesión válida
  • Autorización: Usuarios solo acceden a sus propios documentos