← Volver a Middleware

KeyConflictValidationMiddleware

Middleware de validación estricta de claves primarias en cualquier modelo

🛡️ Descripción General

KeyConflictValidationMiddleware valida que no existan claves primarias duplicadas en ninguna colección de entidades enviada en el cuerpo de la petición y que los campos clave primaria sean coherentes entre cabecera y líneas.

🔑 ¿Cómo funciona?

🔍 Ejemplo de error por clave primaria incoherente

{
  "message": "Error: El campo 'TipoDocumento' en la línea (s) no coincide con el valor de la cabecera (F). 'TipoDocumento', 'Serie' y 'Factura' deben ser iguales en cabecera y líneas.",
  "code": "HeaderLineKeyMismatch"
}

🔍 Ejemplo de error por clave duplicada

{
  "message": "Error: Se detectó una clave duplicada en la colección 'Lineas' del modelo 'FacturaLinea': [TipoDocumento, Serie, Factura, Relacion] = [F, R1960, 1, 1]. Cada entidad debe tener una clave primaria única.",
  "code": "DuplicateKeyError"
}

⚙️ Flujo de validación

  1. Busca el modelo real de cada colección usando mapeo contextual, pluralización y heurística de campos clave.
  2. Valida que "TipoDocumento", "Serie" y "Factura" sean iguales en cabecera y líneas.
  3. Valida que el resto de campos clave primaria (excepto "Relacion" y "RelacionSubarticulo") también coincidan.
  4. Valida que no existan claves primarias duplicadas en la colección.

📚 Ventajas