# FASE 6: PLAN REFINADO DE CORRECCIONES ## Incorporando Hallazgos de F4 y F5 **Version:** 1.0.0 **Fecha:** 2026-01-10 **Ejecutado por:** Agente Orquestador (PERFIL-ORQUESTADOR) **Sistema:** SIMCO v3.8.0 + CAPVED --- ## 1. CAMBIOS RESPECTO A F3 ### Refinamientos Incorporados de F4 | # | Refinamiento | Incorporado | |---|--------------|-------------| | 1 | Incrementar version de inventarios | SI | | 2 | Agregar paso de verificacion build | SI | ### Optimizaciones de F5 | # | Optimizacion | Incorporado | |---|--------------|-------------| | 1 | Ejecucion paralela donde sea posible | SI | | 2 | Omitir MASTER_INVENTORY (referencia opcional) | SI | --- ## 2. PLAN REFINADO DE EJECUCION ### PASO 1: Correccion DATABASE_INVENTORY.yml (Paralelo) **Archivo:** `orchestration/inventarios/DATABASE_INVENTORY.yml` **Cambios:** 1. Linea 22: `total_tablas: 53` → `total_tablas: 47` 2. Linea 4: `Version: 2.2.0` → `Version: 2.2.1` 3. Linea 5: Actualizar fecha ### PASO 2: Crear supplier-favorites.entity.ts (Paralelo con Paso 1) **Archivo:** `apps/backend/src/modules/marketplace/entities/supplier-favorites.entity.ts` **Contenido completo:** ```typescript import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne, JoinColumn, Unique, } from 'typeorm'; import { Supplier } from './supplier.entity'; @Entity({ name: 'supplier_favorites', schema: 'marketplace' }) @Unique(['tenant_id', 'supplier_id']) export class SupplierFavorites { @PrimaryGeneratedColumn('uuid') id: string; @Column('uuid') tenant_id: string; @Column('uuid') supplier_id: string; @CreateDateColumn() created_at: Date; @ManyToOne(() => Supplier) @JoinColumn({ name: 'supplier_id' }) supplier: Supplier; } ``` ### PASO 3: Actualizar marketplace.module.ts (Depende de Paso 2) **Archivo:** `apps/backend/src/modules/marketplace/marketplace.module.ts` **Cambios:** 1. Agregar import: `import { SupplierFavorites } from './entities/supplier-favorites.entity';` 2. Agregar a forFeature: `SupplierFavorites` **Resultado esperado:** ```typescript import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Supplier } from './entities/supplier.entity'; import { SupplierProduct } from './entities/supplier-product.entity'; import { SupplierOrder } from './entities/supplier-order.entity'; import { SupplierOrderItem } from './entities/supplier-order-item.entity'; import { SupplierReview } from './entities/supplier-review.entity'; import { SupplierFavorites } from './entities/supplier-favorites.entity'; import { MarketplaceService } from './marketplace.service'; import { MarketplaceController } from './marketplace.controller'; @Module({ imports: [ TypeOrmModule.forFeature([ Supplier, SupplierProduct, SupplierOrder, SupplierOrderItem, SupplierReview, SupplierFavorites, ]), ], controllers: [MarketplaceController], providers: [MarketplaceService], exports: [MarketplaceService], }) export class MarketplaceModule {} ``` ### PASO 4: Correccion BACKEND_INVENTORY.yml (Paralelo con Paso 3) **Archivo:** `orchestration/inventarios/BACKEND_INVENTORY.yml` **Cambios:** 1. Linea 39: `total_entities: 35` → `total_entities: 37` 2. Linea 4: `Version: 2.2.0` → `Version: 2.2.1` 3. Agregar entidades faltantes en modulo marketplace (~linea 409): - SupplierOrderItem (entities/supplier-order-item.entity.ts) - SupplierReview (entities/supplier-review.entity.ts) - SupplierFavorites (entities/supplier-favorites.entity.ts) ### PASO 5: Verificar Build (Depende de Pasos 2, 3) ```bash cd apps/backend && npm run build ``` **Criterios de exito:** - Sin errores de compilacion - Sin warnings de TypeORM --- ## 3. DIAGRAMA DE EJECUCION ``` TIEMPO ────────────────────────────────────────────────────────────────► T1 (PARALELO): ┌─────────────────────────────┐ ┌─────────────────────────────────┐ │ PASO 1 │ │ PASO 2 │ │ DATABASE_INVENTORY.yml │ │ supplier-favorites.entity.ts │ │ - total_tablas: 47 │ │ - Crear archivo │ │ - Version: 2.2.1 │ │ - TypeORM Entity │ └─────────────────────────────┘ └────────────────┬────────────────┘ │ T2 (SECUENCIAL): │ ▼ ┌─────────────────────────────────┐ │ PASO 3 │ │ marketplace.module.ts │ │ - Import entity │ │ - Agregar a forFeature │ └────────────────┬────────────────┘ │ T3 (PARALELO): │ ┌─────────────────────────────┐ │ │ PASO 4 │ │ │ BACKEND_INVENTORY.yml │◄──────────────────┘ │ - total_entities: 37 │ │ - Version: 2.2.1 │ │ - Agregar entities │ └─────────────────────────────┘ T4 (VERIFICACION): ┌─────────────────────────────────────────────────────────────────────┐ │ PASO 5: npm run build │ │ Verificar compilacion exitosa │ └─────────────────────────────────────────────────────────────────────┘ ``` --- ## 4. CHECKPOINTS REFINADOS ### Checkpoint 1: Post-Paralelo T1 - [ ] DATABASE_INVENTORY.yml modificado - [ ] total_tablas: 47 - [ ] Version: 2.2.1 - [ ] supplier-favorites.entity.ts creado - [ ] Archivo existe - [ ] Schema: marketplace - [ ] Columnas: id, tenant_id, supplier_id, created_at ### Checkpoint 2: Post-Secuencial T2 - [ ] marketplace.module.ts actualizado - [ ] Import agregado - [ ] forFeature incluye 6 entities ### Checkpoint 3: Post-Paralelo T3 - [ ] BACKEND_INVENTORY.yml modificado - [ ] total_entities: 37 - [ ] Version: 2.2.1 - [ ] 6 entities en marketplace ### Checkpoint 4: Verificacion Final - [ ] Build exitoso (npm run build) - [ ] Sin errores de TypeORM - [ ] Inventarios consistentes con codigo --- ## 5. COMANDOS DE EJECUCION ```bash # Verificar estado inicial cd /home/isem/workspace-v1/projects/michangarrito # Paso 1 y 2 se ejecutan via herramientas de edicion # Verificar entity creada ls -la apps/backend/src/modules/marketplace/entities/ # Verificar imports grep "SupplierFavorites" apps/backend/src/modules/marketplace/marketplace.module.ts # Build verification cd apps/backend && npm run build # Verificar inventarios grep "total_tablas" orchestration/inventarios/DATABASE_INVENTORY.yml grep "total_entities" orchestration/inventarios/BACKEND_INVENTORY.yml ``` --- ## 6. ROLLBACK REFINADO ### Si falla Paso 2 o 3: ```bash # Eliminar entity rm apps/backend/src/modules/marketplace/entities/supplier-favorites.entity.ts # Revertir module git checkout apps/backend/src/modules/marketplace/marketplace.module.ts ``` ### Si falla Paso 1 o 4: ```bash # Revertir inventarios git checkout orchestration/inventarios/DATABASE_INVENTORY.yml git checkout orchestration/inventarios/BACKEND_INVENTORY.yml ``` --- ## 7. RESUMEN DEL PLAN REFINADO | Paso | Archivo | Cambio | Paralelo | |------|---------|--------|----------| | 1 | DATABASE_INVENTORY.yml | total_tablas, version | SI | | 2 | supplier-favorites.entity.ts | Crear | SI | | 3 | marketplace.module.ts | Import, forFeature | NO | | 4 | BACKEND_INVENTORY.yml | total_entities, version, entities | SI | | 5 | Build | Verificacion | NO | **Total cambios:** 4 archivos **Archivos nuevos:** 1 **Tiempo estimado:** ~15 minutos --- **Documento generado:** 2026-01-10 **Agente:** Orquestador (PERFIL-ORQUESTADOR) **Sistema:** SIMCO v3.8.0 + CAPVED **Estado:** PLAN LISTO PARA EJECUCION **Proxima Fase:** F7 - Ejecucion