clinica-dental/orchestration/_definitions/validations/VALIDATION-BACKEND.md
rckrdmrd d6e529fc14 [GOBERNANZA] feat: Propagar gobernanza completa a clinica-dental
- Crear _definitions/ con protocolos, validaciones y checklists
- Configurar rol CONSUMER con tipo_herencia SPECIALIZES
- Definir modulos propios: odontograma, ortodoncia, protesis
- Crear docs/_SSOT/ con estructura de trazabilidad

Herencia: erp-core -> erp-clinicas -> clinica-dental

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 10:32:03 -06:00

82 lines
1.7 KiB
Markdown

# Validación Backend - NestJS/TypeScript
## Definición Canónica
**Alias:** @DEF_VAL_BE
**Dominio:** Backend NestJS/TypeScript
---
## COMANDOS OBLIGATORIOS
```bash
# ANTES de marcar tarea como completada:
npm run build # DEBE pasar sin errores
npm run lint # DEBE pasar sin errores
npm run test # Si existen tests, DEBEN pasar
```
## CRITERIOS DE ACEPTACIÓN
```yaml
build:
resultado: "Compila sin errores"
archivos_generados: "dist/"
sin_warnings_criticos: true
lint:
resultado: "0 errores de ESLint"
warnings_permitidos: "Solo menores"
reglas_obligatorias:
- "@typescript-eslint/no-explicit-any"
- "@typescript-eslint/no-unused-vars"
test:
resultado: "100% tests pasan"
coverage_minimo: "70% (si configurado)"
nuevos_tests: "Crear para código nuevo"
```
## VALIDACIONES ADICIONALES
```yaml
entities:
- "Alineadas con DDL (nombres, tipos)"
- "Relaciones correctamente definidas"
- "Decoradores TypeORM correctos"
services:
- "Inyección de dependencias correcta"
- "Manejo de errores implementado"
- "Transacciones donde aplique"
controllers:
- "Decoradores Swagger completos"
- "Validación de DTOs"
- "Guards aplicados"
dtos:
- "class-validator decoradores"
- "Tipos correctos"
- "Documentación Swagger"
```
## ERRORES COMUNES
```yaml
- error: "Cannot find module"
causa: "Import incorrecto o dependencia faltante"
solucion: "Verificar rutas y npm install"
- error: "Type X is not assignable to type Y"
causa: "Tipos incompatibles"
solucion: "Alinear tipos con DDL/interfaces"
- error: "Circular dependency"
causa: "Módulos se importan mutuamente"
solucion: "Extraer a módulo compartido o forwardRef"
```
---
**Referencia:** @PERFIL_BACKEND, @SIMCO_BACKEND