FactuGES_ERP/docs/backend-prompt-base.md
david e5e73a5a13 Refactor documentation for ERP architecture and customer invoices
- Updated general requirements document to clarify its historical context and remove outdated technical details.
- Revised template documentation to serve as a base for writing prompts, emphasizing its auxiliary nature.
- Enhanced architecture documentation with clear distinctions between canonical and complementary documents.
- Added a new document for backend prompt base to centralize common context for backend prompts.
- Created a dedicated README for customer invoices, organizing current contracts, operational support, and historical context.
- Improved clarity and structure in various customer invoice documents, consolidating operational semantics and referencing canonical sources.
2026-08-05 13:18:03 +02:00

1.8 KiB

Backend Prompt Base

Objetivo

Centralizar el contexto comun para prompts de backend del ERP y evitar copiar la misma plantilla en varios ficheros.

Contexto comun

  • API en Node.js, TypeScript, Express.js y Sequelize
  • Arquitectura Hexagonal, DDD pragmatico y SOLID
  • Controllers responsables del contrato HTTP
  • Repositorios desacoplados de Sequelize
  • DTOs y presenters para respuestas

Principios de diseno

  • agregados encapsulan su estado y exponen solo lo necesario
  • cada agregado usa su mapper de dominio <-> persistencia
  • repositorios trabajan con agregados, no con modelos ORM expuestos
  • SRP, OCP, LSP, ISP y DIP aplicados de forma explicita
  • dependencias expresadas mediante interfaces de aplicacion

Reglas tecnicas

  • no usar Sequelize directamente en servicios de aplicacion
  • no acoplar servicios a implementaciones concretas si ya existe contrato
  • mantener transformacion a DTO en controllers o presenters
  • capturar errores de persistencia y mapearlos a errores de dominio o API con semantica clara
  • tipar de forma explicita entradas, salidas y resultados

Persistencia y transacciones

  • los repositorios encapsulan acceso a persistencia
  • los mappers reconstruyen y serializan agregados
  • las transacciones se gestionan mediante el mecanismo del proyecto, no desde el controller
  • mantener convenciones existentes de tablas, columnas y timestamps

Testing y seguridad

  • cubrir servicios con tests de unidad cuando cambie comportamiento observable
  • cubrir rutas con tests HTTP cuando aplique
  • no exponer datos sensibles en responses
  • devolver codigos HTTP coherentes con el contrato del endpoint

Uso

  • prompt-auth.md extiende esta base para autenticacion
  • prompt-customer-invoices.md extiende esta base para customer invoices
  • si aparece otro prompt backend, debe reutilizar esta base en lugar de copiarla