From 106adc1de0e8b641cf05b4c8157599bfa53a8f53 Mon Sep 17 00:00:00 2001 From: rckrdmrd Date: Wed, 7 Jan 2026 05:38:14 -0600 Subject: [PATCH] feat: Add orchestration context and environment configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add CONTEXT-MAP.yml and ENVIRONMENT-INVENTORY.yml - Add propagacion-fase8 directory - Update project dependencies and context πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../core/constants/database.constants.ts | 2 +- .../core/types/pagination.types.ts | 2 +- docs/ARCHITECTURE.md | 4 +- docs/ESTRUCTURA-DOCUMENTACION-ERP.md | 2 +- docs/VERTICAL-GUIDE.md | 10 +- .../00-guidelines/HERENCIA-DIRECTIVAS.md | 2 +- orchestration/CONTEXT-MAP.yml | 197 +++++++++ orchestration/PROJECT-STATUS.md | 122 ++++++ .../environment/ENVIRONMENT-INVENTORY.yml | 409 ++++++++++++++++++ 9 files changed, 739 insertions(+), 11 deletions(-) create mode 100644 orchestration/CONTEXT-MAP.yml create mode 100644 orchestration/PROJECT-STATUS.md create mode 100644 orchestration/environment/ENVIRONMENT-INVENTORY.yml diff --git a/apps/shared-libs/core/constants/database.constants.ts b/apps/shared-libs/core/constants/database.constants.ts index c2f3cae..3a20e97 100644 --- a/apps/shared-libs/core/constants/database.constants.ts +++ b/apps/shared-libs/core/constants/database.constants.ts @@ -1,7 +1,7 @@ /** * Database Constants - Schema and table names for ERP-Suite * - * @module @erp-suite/core/constants + * @module @erp-suite/shared/constants */ /** diff --git a/apps/shared-libs/core/types/pagination.types.ts b/apps/shared-libs/core/types/pagination.types.ts index 6af0138..2541f57 100644 --- a/apps/shared-libs/core/types/pagination.types.ts +++ b/apps/shared-libs/core/types/pagination.types.ts @@ -1,7 +1,7 @@ /** * Pagination Types - Shared across all ERP-Suite modules * - * @module @erp-suite/core/types + * @module @erp-suite/shared/types */ /** diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 1e72e6d..6aa9c74 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -381,7 +381,7 @@ ADD COLUMN deleted_at TIMESTAMPTZ; - Multi-company - Wizard pattern for complex operations -Ver: `/home/isem/workspace/core/knowledge-base/patterns/PATRON-CORE-ODOO.md` +Ver: `../../erp-core/orchestration/directivas/DIRECTIVA-PATRONES-ODOO.md` ## Dependencies @@ -560,6 +560,6 @@ Ver documentaciΓ³n completa: [MULTI-TENANCY.md](./MULTI-TENANCY.md) - [Multi-Tenancy Guide](./MULTI-TENANCY.md) - [Vertical Development Guide](./VERTICAL-GUIDE.md) -- [Odoo Patterns](../../../workspace/core/knowledge-base/patterns/PATRON-CORE-ODOO.md) +- [Odoo Patterns](../../erp-core/orchestration/directivas/DIRECTIVA-PATRONES-ODOO.md) - [Database Schema](../apps/erp-core/database/ddl/) - [Directivas ERP](../apps/erp-core/orchestration/directivas/) diff --git a/docs/ESTRUCTURA-DOCUMENTACION-ERP.md b/docs/ESTRUCTURA-DOCUMENTACION-ERP.md index 5f63090..e66a41f 100644 --- a/docs/ESTRUCTURA-DOCUMENTACION-ERP.md +++ b/docs/ESTRUCTURA-DOCUMENTACION-ERP.md @@ -337,7 +337,7 @@ apps/verticales/{vertical}/ - `core/orchestration/templates/TEMPLATE-PLAN.md` ### Recursos de Referencia -- **CatΓ‘logo central:** `core/catalog/` *(componentes reutilizables)* +- **CatΓ‘logo central:** `shared/catalog/` *(componentes reutilizables)* - **EstΓ‘ndares:** `core/standards/` *(estΓ‘ndares de documentaciΓ³n)* --- diff --git a/docs/VERTICAL-GUIDE.md b/docs/VERTICAL-GUIDE.md index 15894e3..b8c2016 100644 --- a/docs/VERTICAL-GUIDE.md +++ b/docs/VERTICAL-GUIDE.md @@ -188,8 +188,8 @@ COMMENT ON TABLE my_vertical_management.custom_entities IS ```typescript // backend/src/modules/projects/vertical-project.service.ts -import { ProjectService } from '@erp-core/modules/projects/project.service'; -import { CreateProjectDto } from '@erp-core/modules/projects/dto'; +import { ProjectService } from '@erp-shared/modules/projects/project.service'; +import { CreateProjectDto } from '@erp-shared/modules/projects/dto'; interface CreateVerticalProjectDto extends CreateProjectDto { // Add vertical-specific fields @@ -530,13 +530,13 @@ Create documentation for your vertical: import { ProjectService } from '../../../erp-core/backend/src/modules/projects/project.service'; // Option 2: Package import (if separate packages) -import { ProjectService } from '@erp-core/modules/projects'; +import { ProjectService } from '@erp-shared/modules/projects'; ``` #### Share Types ```typescript -// shared-libs/core/types/index.ts +// shared-libs/shared/types/index.ts export interface BaseEntity { id: string; tenantId: string; @@ -760,4 +760,4 @@ VERTICAL_DB_SCHEMA=my_vertical_management - [Architecture Documentation](./ARCHITECTURE.md) - [Multi-Tenancy Guide](./MULTI-TENANCY.md) - [Core Modules Documentation](../apps/erp-core/docs/) -- [Odoo Development Patterns](../../../workspace/core/knowledge-base/patterns/PATRON-CORE-ODOO.md) +- [Odoo Development Patterns](../../erp-core/orchestration/directivas/DIRECTIVA-PATRONES-ODOO.md) diff --git a/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md b/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md index c8509be..6de2b23 100644 --- a/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md +++ b/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md @@ -99,7 +99,7 @@ Este proyecto utiliza las siguientes funcionalidades del catΓ‘logo core: | `auth` | AutenticaciΓ³n centralizada | | `multi-tenancy` | SeparaciΓ³n por empresa/sucursal | -**Path catΓ‘logo:** `~/workspace/core/catalog/` +**Path catΓ‘logo:** `~/workspace/shared/catalog/` ## Uso para Subagentes diff --git a/orchestration/CONTEXT-MAP.yml b/orchestration/CONTEXT-MAP.yml new file mode 100644 index 0000000..72eaa3c --- /dev/null +++ b/orchestration/CONTEXT-MAP.yml @@ -0,0 +1,197 @@ +# CONTEXT-MAP: ERP-SUITE +# Sistema: SIMCO - NEXUS v4.0 +# PropΓ³sito: Mapear contexto automΓ‘tico por nivel y tarea +# VersiΓ³n: 1.0.0 +# Fecha: 2026-01-04 + +metadata: + proyecto: "erp-suite" + nivel: "SUITE" + version: "1.0.0" + ultima_actualizacion: "2026-01-04" + workspace_root: "/home/isem/workspace-v1" + project_root: "/home/isem/workspace-v1/projects/erp-suite" + +# ═══════════════════════════════════════════════════════════════════════════════ +# VARIABLES DEL PROYECTO (PRE-RESUELTAS) +# ═══════════════════════════════════════════════════════════════════════════════ + +variables: + # IdentificaciΓ³n + PROJECT: "erp-suite" + PROJECT_NAME: "ERP-SUITE" + PROJECT_LEVEL: "SUITE" + + # Paths principales + APPS_ROOT: "/home/isem/workspace-v1/projects/erp-suite/apps" + DOCS_ROOT: "/home/isem/workspace-v1/projects/erp-suite/docs" + ORCHESTRATION_PATH: "/home/isem/workspace-v1/projects/erp-suite/orchestration" + DOCKER_PATH: "/home/isem/workspace-v1/projects/erp-suite/docker" + SCRIPTS_PATH: "/home/isem/workspace-v1/projects/erp-suite/scripts" + + # Verticales + VERTICALES: + - erp-core + - erp-clinicas + - erp-construccion + - erp-mecanicas-diesel + - erp-retail + - erp-vidrio-templado + +# ═══════════════════════════════════════════════════════════════════════════════ +# ALIASES RESUELTOS +# ═══════════════════════════════════════════════════════════════════════════════ + +aliases: + # Directivas globales + "@SIMCO": "/home/isem/workspace-v1/orchestration/directivas/simco" + "@PRINCIPIOS": "/home/isem/workspace-v1/orchestration/directivas/principios" + "@PERFILES": "/home/isem/workspace-v1/orchestration/agents/perfiles" + "@CATALOG": "/home/isem/workspace-v1/shared/catalog" + + # Suite especΓ­fico + "@APPS": "/home/isem/workspace-v1/projects/erp-suite/apps" + "@PRODUCTS": "/home/isem/workspace-v1/projects/erp-suite/apps/products" + "@SAAS": "/home/isem/workspace-v1/projects/erp-suite/apps/saas" + "@SHARED_LIBS": "/home/isem/workspace-v1/projects/erp-suite/apps/shared-libs" + "@DOCS": "/home/isem/workspace-v1/projects/erp-suite/docs" + + # Verticales como proyectos separados + "@ERP_CORE": "/home/isem/workspace-v1/projects/erp-core" + "@ERP_CLINICAS": "/home/isem/workspace-v1/projects/erp-clinicas" + "@ERP_CONSTRUCCION": "/home/isem/workspace-v1/projects/erp-construccion" + "@ERP_MECANICAS": "/home/isem/workspace-v1/projects/erp-mecanicas-diesel" + "@ERP_RETAIL": "/home/isem/workspace-v1/projects/erp-retail" + "@ERP_VIDRIO": "/home/isem/workspace-v1/projects/erp-vidrio-templado" + + # Inventarios + "@INVENTORY": "/home/isem/workspace-v1/projects/erp-suite/orchestration/inventarios" + +# ═══════════════════════════════════════════════════════════════════════════════ +# CONTEXTO POR NIVEL +# ═══════════════════════════════════════════════════════════════════════════════ + +contexto_por_nivel: + L0_sistema: + descripcion: "Principios fundamentales y perfil de agente" + tokens_estimados: 4500 + obligatorio: true + archivos: + - path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-CAPVED.md" + proposito: "Ciclo de vida de tareas" + tokens: 800 + - path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-DOC-PRIMERO.md" + proposito: "DocumentaciΓ³n antes de cΓ³digo" + tokens: 500 + - path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md" + proposito: "Verificar catΓ‘logo antes de crear" + tokens: 600 + - path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md" + proposito: "Build/lint deben pasar" + tokens: 600 + - path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-ECONOMIA-TOKENS.md" + proposito: "LΓ­mites de contexto" + tokens: 500 + - path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-NO-ASUMIR.md" + proposito: "Preguntar si falta informaciΓ³n" + tokens: 500 + - path: "/home/isem/workspace-v1/orchestration/referencias/ALIASES.yml" + proposito: "ResoluciΓ³n de @ALIAS" + tokens: 400 + + L1_proyecto: + descripcion: "Contexto especΓ­fico de ERP-SUITE" + tokens_estimados: 3000 + obligatorio: true + archivos: + - path: "/home/isem/workspace-v1/projects/erp-suite/orchestration/00-guidelines/CONTEXTO-PROYECTO.md" + proposito: "Variables y configuraciΓ³n del proyecto" + tokens: 1500 + - path: "/home/isem/workspace-v1/projects/erp-suite/orchestration/PROXIMA-ACCION.md" + proposito: "Estado actual y siguiente paso" + tokens: 500 + + L2_operacion: + descripcion: "SIMCO especΓ­ficos segΓΊn operaciΓ³n y dominio" + tokens_estimados: 2500 + archivos_por_operacion: + CREAR: + - "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-CREAR.md" + MODIFICAR: + - "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-MODIFICAR.md" + VALIDAR: + - "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-VALIDAR.md" + DELEGAR: + - "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-DELEGACION.md" + + L3_tarea: + descripcion: "Contexto especΓ­fico de la tarea" + tokens_max: 8000 + dinamico: true + +# ═══════════════════════════════════════════════════════════════════════════════ +# INFORMACIΓ“N ESPECÍFICA DEL PROYECTO +# ═══════════════════════════════════════════════════════════════════════════════ + +info_proyecto: + tipo: "Sistema ERP Multi-Vertical" + estado: "En desarrollo activo" + version: "1.0" + + stack: + backend: "Node.js 20+, Express.js, TypeScript 5.3+, TypeORM" + frontend: "React 18, Vite, TypeScript, Tailwind CSS" + mobile: "React Native" + database: "PostgreSQL 15+ con RLS" + + verticales_estado: + erp-core: "60%" + erp-construccion: "35%" + erp-vidrio-templado: "0%" + erp-mecanicas-diesel: "0%" + erp-retail: "0%" + erp-clinicas: "0%" + +# ═══════════════════════════════════════════════════════════════════════════════ +# VALIDACIΓ“N DE TOKENS +# ═══════════════════════════════════════════════════════════════════════════════ + +validacion_tokens: + limite_absoluto: 25000 + limite_seguro: 18000 + limite_alerta: 20000 + + presupuesto: + L0_sistema: 4500 + L1_proyecto: 3000 + L2_operacion: 2500 + L3_tarea_max: 8000 + total_base: 10000 + disponible_tarea: 8000 + +# ═══════════════════════════════════════════════════════════════════════════════ +# HERENCIA +# ═══════════════════════════════════════════════════════════════════════════════ + +herencia: + tipo: "SUITE" + hereda_de: + - "/home/isem/workspace-v1/orchestration/" + provee_a: + - "/home/isem/workspace-v1/projects/erp-core/" + - "/home/isem/workspace-v1/projects/erp-clinicas/" + - "/home/isem/workspace-v1/projects/erp-construccion/" + - "/home/isem/workspace-v1/projects/erp-mecanicas-diesel/" + - "/home/isem/workspace-v1/projects/erp-retail/" + - "/home/isem/workspace-v1/projects/erp-vidrio-templado/" + +# ═══════════════════════════════════════════════════════════════════════════════ +# BÚSQUEDA DE HISTΓ“RICO +# ═══════════════════════════════════════════════════════════════════════════════ + +busqueda_historico: + habilitado: true + ubicaciones: + - "/home/isem/workspace-v1/projects/erp-suite/orchestration/trazas/" + - "/home/isem/workspace-v1/orchestration/errores/REGISTRO-ERRORES.yml" + - "/home/isem/workspace-v1/shared/knowledge-base/lessons-learned/" diff --git a/orchestration/PROJECT-STATUS.md b/orchestration/PROJECT-STATUS.md new file mode 100644 index 0000000..10ec9ca --- /dev/null +++ b/orchestration/PROJECT-STATUS.md @@ -0,0 +1,122 @@ +# PROJECT STATUS - ERP Suite + +**Fecha:** 2026-01-07 +**Estado:** Gap Analysis Completo +**Fase:** Pre-Implementacion + +--- + +## Resumen Ejecutivo + +| Aspecto | Estado | Notas | +|---------|--------|-------| +| Gap Analysis | Completado | vs Odoo 18 | +| Documentacion | Completa | 30 specs transversales | +| Database Core | Pendiente | DDL no iniciado | +| Backend Core | Pendiente | NestJS planificado | +| Frontend Core | Pendiente | React planificado | +| Verticales | Planificacion | 5 verticales definidas | + +--- + +## Progreso por Componente + +### ERP Core (2B.1) + +| Aspecto | Documentacion | Implementacion | +|---------|---------------|----------------| +| Especificaciones | 100% | 0% | +| Workflows | 100% | 0% | +| Gaps P0 | 18/18 doc | 0/18 impl | +| Gaps P1 | 22/22 doc | 0/22 impl | +| Story Points | 394 SP | 0 SP | + +### Verticales (2B.2) + +| Vertical | Documentacion | Implementacion | +|----------|---------------|----------------| +| construccion | 35% | 0% | +| vidrio-templado | 0% | 0% | +| mecanicas-diesel | 0% | 0% | +| retail | 0% | 0% | +| clinicas | 0% | 0% | + +--- + +## Gap Analysis Completado + +### Gaps P0 (Funcionales Criticos) +- Auth: API Keys, 2FA, OAuth2 +- Users y Roles: Permisos granulares +- Tenants: Multi-tenancy completo +- 18 gaps documentados con specs + +### Gaps P1 (Mejoras) +- 22 gaps documentados +- Patrones tecnicos definidos + +### Workflows Documentados +1. Cierre de periodo contable +2. 3-Way Match (compras) +3. Pagos anticipados + +--- + +## Estructura SIMCO + +| Inventario | Estado | +|------------|--------| +| SUITE_MASTER_INVENTORY.yml | Creado | +| STATUS.yml | Creado | +| REFERENCIAS.yml | Creado | +| TRAZA-SUITE.md | Creado | + +--- + +## Proximas Acciones + +### Opcion A: Implementar Modulos P0 Core (Recomendado) +1. MGN-001 Auth +2. MGN-002 Users +3. MGN-003 Roles +4. MGN-004 Tenants + +### Opcion B: Documentar Herencia Verticales +- Crear HERENCIA-ERP-CORE.md en cada vertical + +### Opcion C: Completar Estructura Verticales +- Verificar orchestration de verticales menores + +--- + +## Riesgos + +| Riesgo | Probabilidad | Impacto | Mitigacion | +|--------|--------------|---------|------------| +| Complejidad multi-vertical | Alta | Alto | Arquitectura modular | +| Divergencia verticales | Media | Alto | SIMCO propagacion | +| Migracion datos existentes | Media | Alto | ETL gradual | + +--- + +## Metricas + +| Metrica | Objetivo | Actual | +|---------|----------|--------| +| Documentacion Core | 100% | 100% | +| Implementacion Core | 100% | 0% | +| Verticales documentadas | 5 | 1 (20%) | +| Story Points totales | 394 | 0 completados | + +--- + +## Referencias + +- Analisis Gaps: `apps/erp-core/orchestration/01-analisis/ANALISIS-GAPS-CONSOLIDADO.md` +- Inventario: `apps/erp-core/orchestration/inventarios/MASTER_INVENTORY.yml` +- Specs: `apps/erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/` + +--- + +**Ultima actualizacion:** 2026-01-07 +**Actualizado por:** Orquestador diff --git a/orchestration/environment/ENVIRONMENT-INVENTORY.yml b/orchestration/environment/ENVIRONMENT-INVENTORY.yml new file mode 100644 index 0000000..742b208 --- /dev/null +++ b/orchestration/environment/ENVIRONMENT-INVENTORY.yml @@ -0,0 +1,409 @@ +# ============================================================================= +# ENVIRONMENT-INVENTORY.yml - ERP-SUITE +# ============================================================================= +# Inventario de Entorno de Desarrollo - Suite ERP Multi-vertical +# Generado por: @PERFIL_DEVENV +# Basado en: orchestration/templates/TEMPLATE-ENVIRONMENT-INVENTORY.yml +# ============================================================================= + +version: "1.0.0" +fecha_creacion: "2026-01-04" +fecha_actualizacion: "2026-01-04" +responsable: "@PERFIL_DEVENV" + +# ----------------------------------------------------------------------------- +# IDENTIFICACION DEL PROYECTO +# ----------------------------------------------------------------------------- + +proyecto: + nombre: "ERP Suite" + alias: "erp" + nivel: "NIVEL_2B" + tipo: "suite" + estado: "desarrollo" + descripcion: "Suite ERP con multiples verticales industriales" + +# ----------------------------------------------------------------------------- +# HERRAMIENTAS Y RUNTIME +# ----------------------------------------------------------------------------- + +herramientas: + runtime: + node: + version: "20.x" + requerido: true + notas: "LTS recomendado para todos los modulos" + + package_managers: + npm: + version: "10.x" + requerido: true + pnpm: + version: "8.x" + requerido: false + notas: "Alternativa para monorepo" + + build_tools: + - nombre: "Vite" + version: "5.x" + uso: "Frontend build" + - nombre: "TypeScript" + version: "5.x" + uso: "Compilacion" + - nombre: "NestJS CLI" + version: "10.x" + uso: "Backend build" + + linters: + - nombre: "ESLint" + version: "8.x" + config: ".eslintrc.js" + - nombre: "Prettier" + version: "3.x" + config: ".prettierrc" + + testing: + - nombre: "Jest" + version: "29.x" + tipo: "unit" + config: "jest.config.js" + - nombre: "Vitest" + version: "1.x" + tipo: "unit frontend" + config: "vitest.config.ts" + +# ----------------------------------------------------------------------------- +# SERVICIOS Y PUERTOS - CORE +# ----------------------------------------------------------------------------- + +servicios: + erp_core: + frontend: + nombre: "erp-core-frontend" + framework: "React" + version: "18.x" + puerto: 3010 + ubicacion: "apps/erp-core/frontend/" + url_local: "http://localhost:3010" + + backend: + nombre: "erp-core-backend" + framework: "NestJS" + version: "10.x" + puerto: 3011 + ubicacion: "apps/erp-core/backend/" + url_local: "http://localhost:3011" + api_prefix: "/api/v1" + +# ----------------------------------------------------------------------------- +# SERVICIOS Y PUERTOS - VERTICALES +# ----------------------------------------------------------------------------- + + verticales: + construccion: + frontend: + puerto: 3020 + ubicacion: "apps/verticales/construccion/frontend/" + url_local: "http://localhost:3020" + backend: + puerto: 3021 + ubicacion: "apps/verticales/construccion/backend/" + url_local: "http://localhost:3021" + db_puerto: 5433 + redis_puerto: 6380 + + vidrio_templado: + frontend: + puerto: 3030 + ubicacion: "apps/verticales/vidrio-templado/frontend/" + url_local: "http://localhost:3030" + backend: + puerto: 3031 + ubicacion: "apps/verticales/vidrio-templado/backend/" + url_local: "http://localhost:3031" + db_puerto: 5434 + redis_puerto: 6381 + + mecanicas_diesel: + frontend: + puerto: 3040 + ubicacion: "apps/verticales/mecanicas-diesel/frontend/" + url_local: "http://localhost:3040" + backend: + puerto: 3041 + ubicacion: "apps/verticales/mecanicas-diesel/backend/" + url_local: "http://localhost:3041" + + retail: + frontend: + puerto: 3050 + ubicacion: "apps/verticales/retail/frontend/" + url_local: "http://localhost:3050" + backend: + puerto: 3051 + ubicacion: "apps/verticales/retail/backend/" + url_local: "http://localhost:3051" + db_puerto: 5436 + redis_puerto: 6383 + + clinicas: + frontend: + puerto: 3060 + ubicacion: "apps/verticales/clinicas/frontend/" + url_local: "http://localhost:3060" + backend: + puerto: 3061 + ubicacion: "apps/verticales/clinicas/backend/" + url_local: "http://localhost:3061" + db_puerto: 5437 + redis_puerto: 6384 + +# ----------------------------------------------------------------------------- +# BASE DE DATOS +# ----------------------------------------------------------------------------- + +base_de_datos: + principal: + engine: "PostgreSQL" + version: "15" + host: "localhost" + puerto: 5432 + + ambientes: + development: + nombre: "erp_generic" + usuario: "erp_admin" + password_ref: "DB_PASSWORD en .env" + + test: + nombre: "erp_test" + usuario: "erp_admin" + password_ref: "DB_PASSWORD en .env" + + schemas: + - nombre: "public" + descripcion: "Schema principal" + - nombre: "core" + descripcion: "Funcionalidades core compartidas" + - nombre: "auth" + descripcion: "Autenticacion y usuarios" + + conexion_ejemplo: "postgresql://erp_admin:{password}@localhost:5432/erp_generic" + + verticales_separadas: + construccion: + puerto: 5433 + nombre: "erp_construccion" + vidrio_templado: + puerto: 5434 + nombre: "erp_vidrio" + retail: + puerto: 5436 + nombre: "erp_retail" + clinicas: + puerto: 5437 + nombre: "erp_clinicas" + + redis: + default: + puerto: 6379 + uso: "core cache" + construccion: + puerto: 6380 + vidrio_templado: + puerto: 6381 + retail: + puerto: 6383 + clinicas: + puerto: 6384 + +# ----------------------------------------------------------------------------- +# VARIABLES DE ENTORNO +# ----------------------------------------------------------------------------- + +variables_entorno: + archivo_ejemplo: ".env.example" + archivo_puertos: ".env.ports" + + variables: + - nombre: "NODE_ENV" + descripcion: "Ambiente de ejecucion" + requerido: true + sensible: false + ejemplo: "development" + + - nombre: "ERP_CORE_PORT" + descripcion: "Puerto del backend core" + requerido: true + sensible: false + ejemplo: "3011" + + - nombre: "DATABASE_URL" + descripcion: "Connection string de PostgreSQL" + requerido: true + sensible: true + ejemplo: "postgresql://erp_admin:password@localhost:5432/erp_generic" + + - nombre: "JWT_SECRET" + descripcion: "Secreto para JWT" + requerido: true + sensible: true + ejemplo: "" + +# ----------------------------------------------------------------------------- +# CONTENEDORES DOCKER +# ----------------------------------------------------------------------------- + +docker: + compose_file: "docker-compose.yml" + + services: + - nombre: "db" + imagen: "postgres:15-alpine" + puerto_host: 5432 + puerto_container: 5432 + + - nombre: "db-construccion" + imagen: "postgres:15-alpine" + puerto_host: 5433 + puerto_container: 5432 + + - nombre: "redis" + imagen: "redis:7-alpine" + puerto_host: 6379 + puerto_container: 6379 + + volumes: + - nombre: "postgres_data" + descripcion: "Datos de PostgreSQL core" + + networks: + - nombre: "erp_network" + driver: "bridge" + +# ----------------------------------------------------------------------------- +# MAPA VISUAL DE PUERTOS +# ----------------------------------------------------------------------------- +# +# ERP-CORE: +# Frontend: 3010 +# Backend: 3011 +# +# VERTICALES: +# Construccion: 3020/3021 (DB: 5433, Redis: 6380) +# Vidrio-Templado: 3030/3031 (DB: 5434, Redis: 6381) +# Mecanicas-Diesel: 3040/3041 +# Retail: 3050/3051 (DB: 5436, Redis: 6383) +# Clinicas: 3060/3061 (DB: 5437, Redis: 6384) +# +# ----------------------------------------------------------------------------- + +# ----------------------------------------------------------------------------- +# SCRIPTS DE DESARROLLO +# ----------------------------------------------------------------------------- + +scripts: + setup: + descripcion: "Configurar entorno desde cero" + pasos: + - "npm install" + - "cp .env.example .env" + - "docker-compose up -d" + - "npm run migration:run" + + desarrollo: + core: "npm run dev:core" + vertical: "npm run dev:vertical -- --name={vertical}" + all: "npm run dev:all" + + testing: + unit: "npm run test" + e2e: "npm run test:e2e" + + build: + all: "npm run build" + core: "npm run build:core" + +# ----------------------------------------------------------------------------- +# INSTRUCCIONES DE SETUP +# ----------------------------------------------------------------------------- + +setup_instrucciones: | + ## Setup del Entorno de Desarrollo - ERP Suite + + ### Prerequisitos + - Node.js 20.x + - PostgreSQL 15 (o Docker) + - Redis 7 (o Docker) + - npm 10.x + + ### Pasos + + 1. Clonar repositorio: + ```bash + git clone + cd erp-suite + ``` + + 2. Instalar dependencias: + ```bash + npm install + ``` + + 3. Configurar variables de entorno: + ```bash + cp .env.example .env + # Editar .env con valores locales + ``` + + 4. Levantar servicios Docker: + ```bash + docker-compose up -d + ``` + + 5. Ejecutar migraciones: + ```bash + npm run migration:run + ``` + + 6. Iniciar desarrollo (core): + ```bash + npm run dev:core + ``` + + 7. Iniciar vertical especifica: + ```bash + npm run dev:vertical -- --name=construccion + ``` + + ### Verificar + - Core Frontend: http://localhost:3010 + - Core Backend: http://localhost:3011/api/v1 + +# ----------------------------------------------------------------------------- +# TROUBLESHOOTING +# ----------------------------------------------------------------------------- + +troubleshooting: + - problema: "Conflicto de puertos entre verticales" + solucion: "Verificar .env.ports. Cada vertical tiene rango asignado" + + - problema: "BD de vertical no conecta" + solucion: "Verificar que docker-compose levanto el servicio de BD correcto" + + - problema: "Redis no disponible" + solucion: "docker-compose up -d redis. Verificar puerto correcto para vertical" + +# ----------------------------------------------------------------------------- +# REFERENCIAS +# ----------------------------------------------------------------------------- + +referencias: + perfil_devenv: "orchestration/agents/perfiles/PERFIL-DEVENV.md" + inventario_master: "orchestration/inventarios/DEVENV-MASTER-INVENTORY.yml" + inventario_puertos: "orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml" + env_ports: ".env.ports" + +# ============================================================================= +# FIN DE INVENTARIO +# =============================================================================