# ERP SUITE - TAREAS DE IMPLEMENTACION **Proyecto:** ERP Suite (Multi-Vertical) **Fase:** 4.2 - Migracion de ERP Suite **Estado:** Planificado --- ## RESUMEN DE TAREAS | Grupo | Tareas | Esfuerzo | |-------|--------|----------| | T4.2.1 Estructura Base | 5 | 3 horas | | T4.2.2 ERP Core | 6 | 4 horas | | T4.2.3 Vertical Construccion | 5 | 3 horas | | T4.2.4 Vertical Mecanicas | 5 | 3 horas | | T4.2.5 Docker Compose | 4 | 4 horas | | T4.2.6 Validacion | 4 | 3 horas | | **TOTAL** | **29** | **20 horas** | --- ## T4.2.1 ESTRUCTURA BASE ### T4.2.1.1 Crear estructura de carpetas ```bash mkdir -p erp-suite/{apps/{erp-core/{backend,frontend,database},verticales/{construccion,mecanicas-diesel,vidrio-templado,retail,clinicas}/{backend,frontend,database}},docker,orchestration,docs,.github/workflows} ``` ### T4.2.1.2 Crear package.json root ```json { "name": "erp-suite", "version": "1.0.0", "private": true, "workspaces": [ "apps/erp-core/backend", "apps/erp-core/frontend", "apps/verticales/*/backend", "apps/verticales/*/frontend" ], "scripts": { "dev:core": "npm -w apps/erp-core/backend run dev", "dev:construccion": "npm -w apps/verticales/construccion/backend run dev", "dev:mecanicas": "npm -w apps/verticales/mecanicas-diesel/backend run dev", "build:all": "npm run build --workspaces", "test:all": "npm run test --workspaces" } } ``` ### T4.2.1.3 - T4.2.1.5 README, .gitignore, documentacion --- ## T4.2.2 ERP CORE ### T4.2.2.1 Crear service.descriptor.yml para Core Backend ```yaml # apps/erp-core/backend/service.descriptor.yml service: name: "erp-core-api" type: "backend" runtime: "node" version: "1.0.0" description: "API core del ERP Suite - Autenticacion, tenants, configuracion" owner_agent: "NEXUS-BACKEND" repository: name: "erp-suite" path: "apps/erp-core/backend" main_branch: "main" ports: internal: 3010 registry_ref: "projects.erp_suite.api" protocol: "http" domains: registry_ref: "erp" overrides: local: "api.erp.localhost" database: registry_ref: "erp_core" role: "runtime" schemas: - "public" - "auth" - "config" - "tenants" environments: deployed_to: ["local", "development", "production"] default: "local" healthcheck: path: "/health" interval: "30s" dependencies: services: [] databases: ["erp_core_db"] external: [] ci: pipeline: "node-backend-standard" tests: true lint: true build: true docker: true docker_image: "erp-core-api" ``` ### T4.2.2.2 Crear service.descriptor.yml para Core Frontend ### T4.2.2.3 Migrar codigo Core Backend ```bash cp -r workspace/projects/erp-suite/apps/erp-core/backend/* erp-suite/apps/erp-core/backend/ ``` ### T4.2.2.4 Migrar codigo Core Frontend ### T4.2.2.5 Migrar Database Scripts Core ### T4.2.2.6 Actualizar imports y paths --- ## T4.2.3 VERTICAL CONSTRUCCION ### T4.2.3.1 Crear service.descriptor.yml ```yaml # apps/verticales/construccion/backend/service.descriptor.yml service: name: "erp-construccion-api" type: "backend" runtime: "node" version: "1.0.0" description: "API del ERP Construccion - Vertical especializada" owner_agent: "NEXUS-BACKEND" repository: name: "erp-suite" path: "apps/verticales/construccion/backend" main_branch: "main" ports: internal: 3012 registry_ref: "projects.erp_construccion.api" protocol: "http" domains: registry_ref: "erp_construccion" overrides: local: "api.construccion.erp.localhost" database: registry_ref: "erp_construccion" role: "runtime" schemas: - "public" - "construction" - "hr" - "hse" - "estimates" healthcheck: path: "/health" dependencies: services: - name: "erp-core-api" required: true healthcheck: "http://erp-core-api:3010/health" databases: ["erp_construccion_db"] ci: pipeline: "node-backend-standard" docker: true docker_image: "erp-construccion-api" ``` ### T4.2.3.2 - T4.2.3.5 Migrar codigo, database, actualizar paths --- ## T4.2.4 VERTICAL MECANICAS ### T4.2.4.1 Crear service.descriptor.yml ```yaml # apps/verticales/mecanicas-diesel/backend/service.descriptor.yml service: name: "erp-mecanicas-api" type: "backend" runtime: "node" version: "1.0.0" description: "API del ERP Mecanicas Diesel" owner_agent: "NEXUS-BACKEND" ports: internal: 3014 registry_ref: "projects.erp_mecanicas.api" database: registry_ref: "erp_mecanicas" schemas: - "public" - "workshop" - "inventory" - "customers" dependencies: services: - name: "erp-core-api" required: true ``` ### T4.2.4.2 - T4.2.4.5 Migrar codigo, database, actualizar paths --- ## T4.2.5 DOCKER COMPOSE ### T4.2.5.1 Crear docker-compose.yml (Core) ```yaml # docker/docker-compose.yml - ERP Core Services version: "3.8" x-logging: &default-logging driver: "json-file" options: max-size: "10m" max-file: "3" services: erp-core-api: build: context: ../apps/erp-core/backend container_name: erp-core-api expose: - "3010" environment: - NODE_ENV=${NODE_ENV:-development} - DATABASE_URL=${CORE_DATABASE_URL} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3010/health"] interval: 30s labels: - "traefik.enable=true" - "traefik.http.routers.erp-core-api.rule=Host(`api.erp.localhost`)" - "traefik.http.services.erp-core-api.loadbalancer.server.port=3010" networks: - erp_core_${ENV:-local} - infra_shared logging: <<: *default-logging erp-core-web: build: context: ../apps/erp-core/frontend container_name: erp-core-web expose: - "3011" labels: - "traefik.enable=true" - "traefik.http.routers.erp-core-web.rule=Host(`erp.localhost`)" networks: - erp_core_${ENV:-local} - infra_shared networks: erp_core_${ENV:-local}: external: true infra_shared: external: true ``` ### T4.2.5.2 Crear docker-compose.construccion.yml ```yaml # docker/docker-compose.construccion.yml version: "3.8" services: construccion-api: build: context: ../apps/verticales/construccion/backend container_name: erp-construccion-api expose: - "3012" environment: - NODE_ENV=${NODE_ENV:-development} - DATABASE_URL=${CONSTRUCCION_DATABASE_URL} - CORE_API_URL=http://erp-core-api:3010 labels: - "traefik.enable=true" - "traefik.http.routers.construccion-api.rule=Host(`api.construccion.erp.localhost`)" - "traefik.http.services.construccion-api.loadbalancer.server.port=3012" networks: - erp_construccion_${ENV:-local} - erp_core_${ENV:-local} # Para comunicarse con core - infra_shared depends_on: - erp-core-api construccion-web: build: context: ../apps/verticales/construccion/frontend container_name: erp-construccion-web expose: - "3013" labels: - "traefik.enable=true" - "traefik.http.routers.construccion-web.rule=Host(`construccion.erp.localhost`)" networks: - erp_construccion_${ENV:-local} - infra_shared networks: erp_construccion_${ENV:-local}: external: true erp_core_${ENV:-local}: external: true infra_shared: external: true ``` ### T4.2.5.3 Crear docker-compose.mecanicas.yml Similar a construccion pero con puertos 3014, 3015. ### T4.2.5.4 Crear .env.example ```bash # .env.example - ERP Suite NODE_ENV=development ENV=local # Core Database CORE_DATABASE_URL=postgresql://erp_app:password@postgres:5432/erp_core_db # Construccion Database CONSTRUCCION_DATABASE_URL=postgresql://erp_app:password@postgres:5432/erp_construccion_db # Mecanicas Database MECANICAS_DATABASE_URL=postgresql://erp_app:password@postgres:5432/erp_mecanicas_db # JWT (compartido) JWT_SECRET=your-secret-key ``` --- ## T4.2.6 VALIDACION ### T4.2.6.1 Validar Service Descriptors ```bash for desc in apps/*/backend/service.descriptor.yml apps/verticales/*/backend/service.descriptor.yml; do echo "Validando $desc" python3 -c "import yaml; yaml.safe_load(open('$desc'))" done ``` ### T4.2.6.2 Validar Builds ```bash # Core cd apps/erp-core/backend && npm install && npm run build # Verticales cd apps/verticales/construccion/backend && npm install && npm run build cd apps/verticales/mecanicas-diesel/backend && npm install && npm run build ``` ### T4.2.6.3 Validar Docker ```bash # Validar compose files docker-compose -f docker-compose.yml config docker-compose -f docker-compose.yml -f docker-compose.construccion.yml config docker-compose -f docker-compose.yml -f docker-compose.mecanicas.yml config ``` ### T4.2.6.4 Probar Integracion ```bash # Levantar core docker-compose up -d # Levantar construccion docker-compose -f docker-compose.yml -f docker-compose.construccion.yml up -d # Verificar health curl http://api.erp.localhost/health curl http://api.construccion.erp.localhost/health ``` --- ## CRONOGRAMA SUGERIDO ``` DIA 1 (5 horas): - T4.2.1 Estructura base - T4.2.2 ERP Core completo DIA 2 (6 horas): - T4.2.3 Vertical Construccion - T4.2.4 Vertical Mecanicas DIA 3 (5 horas): - T4.2.5 Docker Compose DIA 4 (4 horas): - T4.2.6 Validacion - Documentacion - Fixes ``` --- ## DEPENDENCIAS ``` T4.2.1 (Estructura) | v T4.2.2 (Core) | +-> T4.2.3 (Construccion) +-> T4.2.4 (Mecanicas) | v T4.2.5 (Docker) | v T4.2.6 (Validacion) ``` --- **Documento generado por:** Tech-Leader