clinica-veterinaria/orchestration/directivas/TRIGGER-COHERENCIA-CAPAS.md
rckrdmrd 3bb417fef3 [clinica-veterinaria] feat: Add SaaS documentation from erp-clinicas chain
- Add orchestration/directivas/ with TRIGGER-COHERENCIA-CAPAS.md and
  TRIGGER-INVENTARIOS.md adapted for veterinary domain
- Add orchestration/agents/perfiles/ with specialized agents:
  - PERFIL-VETERINARIO-AGENT.yml (domain expert)
  - PERFIL-DDL-VET-AGENT.yml (database specialist)
  - _INDEX.yml (agents catalog)
- Add MAPA-DOCUMENTACION.yml with full heritage chain references:
  - template-saas (origin/PROVIDER)
  - erp-core (abuelo/INTERMEDIATE)
  - erp-clinicas (padre/CONSUMER)
- Include normative references: NOM-064-ZOO-2000, NOM-051-ZOO-1995, SENASICA
- Define @VET_ prefixed aliases for project navigation
- Add species catalog (canine, feline, birds, rodents, exotic)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 19:50:27 -06:00

188 lines
5.0 KiB
Markdown

# TRIGGER: Coherencia Entre Capas - Clinica Veterinaria
**ID:** TRIGGER-VET-COHERENCIA
**Version:** 1.0.0
**Proyecto:** clinica-veterinaria
**Hereda de:** @ERP_TRIGGER_COHERENCIA -> @CLINICAS_TRIGGER_COHERENCIA
**Alias:** @VET_TRIGGER_COHERENCIA
---
## Proposito
Validar que cada objeto creado en una capa tenga su correspondiente en las demas capas, manteniendo coherencia DDL - Backend - Frontend, con validaciones especificas para el dominio veterinario.
## Cadena de Herencia
```
template-saas (PROVIDER)
|
v
erp-core (INTERMEDIATE)
|
v
erp-clinicas (CONSUMER)
|
v
clinica-veterinaria (SUB-VERTICAL) <- ESTE PROYECTO
```
## Activacion
### Automatica
- Creacion/modificacion de tabla DDL en schema `sub_veterinaria`
- Creacion/modificacion de entity TypeORM en modulos veterinarios
- Creacion/modificacion de endpoint API especifico veterinario
### Manual
- Comando: `@VET_VALIDATE_COHERENCE`
- Pre-commit hook
## Reglas de Validacion
### DDL -> Backend (OBLIGATORIO)
```yaml
regla_1:
condicion: "Nueva tabla DDL creada en sub_veterinaria.*"
accion: "Verificar entity correspondiente existe"
bloquea: true
regla_2:
condicion: "Columna agregada a tabla veterinaria"
accion: "Verificar campo en entity existe"
bloquea: true
regla_3:
condicion: "Constraint FK agregado a tabla veterinaria"
accion: "Verificar relacion TypeORM existe"
bloquea: true
```
### Backend -> Frontend (CONDICIONAL)
```yaml
regla_4:
condicion: "Endpoint CRUD veterinario creado"
accion: "Verificar hook/servicio frontend existe"
bloquea: false # Solo warning
regla_5:
condicion: "DTO veterinario modificado"
accion: "Verificar tipos TypeScript frontend"
bloquea: false
```
## Validaciones Especificas Clinica Veterinaria
### Modulos CVT (Clinica Veterinaria)
| Modulo | DDL Schema | Backend Path | Frontend Path |
|--------|------------|--------------|---------------|
| CVT-001 Mascotas | sub_veterinaria.pets, pet_owners | modules/mascotas/ | pages/mascotas/ |
| CVT-002 Vacunacion | sub_veterinaria.vaccinations | modules/vacunacion/ | pages/vacunacion/ |
| CVT-003 Desparasitaciones | sub_veterinaria.dewormings | modules/desparasitaciones/ | pages/desparasitaciones/ |
| CVT-004 Hospitalizacion | sub_veterinaria.hospitalizations | modules/hospitalizacion/ | pages/hospitalizacion/ |
| CVT-005 Estetica Canina | sub_veterinaria.grooming_* | modules/estetica/ | pages/estetica/ |
| CVT-006 Farmacia Veterinaria | sub_veterinaria.vet_medications | modules/farmacia/ | pages/farmacia/ |
### Coherencia de Nombres
```
DDL: sub_veterinaria.tabla_nombre (snake_case)
Entity: TablaNombre (PascalCase)
Service: tabla-nombre.service.ts (kebab-case)
Controller: tabla-nombre.controller.ts (kebab-case)
```
## Validaciones Normativas (NOM-064-ZOO-2000)
### Campos Obligatorios para Expediente Veterinario
```yaml
validacion_normativa:
condicion: "Entity de expediente veterinario"
campos_requeridos:
- "especie"
- "raza"
- "sexo"
- "edad_aproximada"
- "peso"
- "chip_id" # Si aplica
- "propietario_id"
- "historial_vacunacion"
- "historial_desparasitacion"
- "alergias_conocidas"
- "diagnostico"
- "tratamiento"
referencia_normativa: "NOM-064-ZOO-2000"
bloquea: true
```
### Integridad de Registro de Mascotas
```yaml
validacion_mascotas:
condicion: "Tabla pets creada/modificada"
reglas:
- "Especie obligatoria (catalogo SENASICA)"
- "Propietario vinculado obligatorio"
- "Historial medico trazable"
- "Chip/Identificacion unica"
bloquea: true
```
### Control de Vacunacion
```yaml
validacion_vacunas:
condicion: "Tabla vaccinations creada/modificada"
reglas:
- "Lote de vacuna registrado"
- "Fecha de aplicacion"
- "Fecha de proxima aplicacion"
- "Medico veterinario responsable"
- "Consentimiento del propietario"
referencia_normativa: "SENASICA"
bloquea: true
```
## Excepciones Permitidas
1. **Tablas M:N gestionadas por TypeORM**
- Documentar en ENTITIES-CATALOG.md
2. **Tablas de auditoria/sistema**
- Prefijo: `_audit_vet`, `_system_vet`
3. **Tablas heredadas de erp-clinicas**
- No requieren entity local si se usa la del padre (adaptada)
4. **Vistas para reportes sanitarios**
- Documentar en DATABASE-SCHEMA.md
## Metricas
| Metrica | Objetivo | Actual |
|---------|----------|--------|
| Coherencia DDL-Entity | 100% | TBD |
| Coherencia Entity-Service | 100% | TBD |
| Coherencia API-Frontend | 95% | TBD |
| Cumplimiento NOM-064 | 100% | TBD |
## Referencias
- `@VET_DEF_DB` - DATABASE-SCHEMA.md
- `@VET_DEF_ENTITIES` - ENTITIES-CATALOG.md
- `@CLINICAS_TRIGGER_COHERENCIA` - Trigger padre en erp-clinicas
- `@ERP_TRIGGER_COHERENCIA` - Trigger abuelo en erp-core
- `@WS_TRIGGER_COHERENCIA` - Trigger raiz del workspace
---
**Normativa Aplicable:**
- NOM-064-ZOO-2000: Requisitos para establecimientos de atencion medica veterinaria
- NOM-051-ZOO-1995: Trato humanitario en movilizacion de animales
- SENASICA: Servicio Nacional de Sanidad, Inocuidad y Calidad Agroalimentaria
- NOM-033-SAG/ZOO-2014: Metodos para dar muerte a animales domesticos y silvestres