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

50 lines
1.8 KiB
Markdown

# 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