# FASE 3: Plan de Correccion de Integracion Documentacion-Codigo **Fecha:** 2026-01-10 **Estado:** EN REVISION **Basado en:** FASE-2-ANALISIS-DETALLADO-INTEGRACION-2026-01-10.md --- ## 1. Estrategia de Correccion ### 1.1 Decision Estrategica **Enfoque seleccionado:** HIBRIDO - **Documentacion:** Actualizar para reflejar estado actual del codigo - **Codigo:** Implementar solo features criticos faltantes ### 1.2 Criterios de Decision | Tipo de Discrepancia | Accion | |----------------------|--------| | Feature documentado, no implementado, NO critico | Remover de doc | | Feature documentado, no implementado, SI critico | Implementar | | Feature implementado, no documentado | Agregar a doc | | Conteo/estado incorrecto | Corregir doc | | Enum/estructura inconsistente | Decidir caso por caso | --- ## 2. Plan de Correcciones Criticas ### PLAN-CRIT-001: Corregir Conteo de Tablas **Discrepancia:** Documentacion dice 39 tablas, codigo tiene 24 **Accion:** Actualizar documentacion con conteo real **Archivos a modificar:** 1. `orchestration/inventarios/MASTER_INVENTORY.yml` - linea 27 2. `orchestration/inventarios/DATABASE_INVENTORY.yml` - linea 199 3. `orchestration/PROJECT-STATUS.md` - seccion metricas 4. `docs/_MAP.md` - seccion schemas **Cambios especificos:** ```yaml # MASTER_INVENTORY.yml database_tables: 24 # Era 39 # DATABASE_INVENTORY.yml total_tablas: 24 # Era 39 # PROJECT-STATUS.md | Database | Completado | 12 schemas, 24 tablas | # Era 39 # _MAP.md **Total:** 12 schemas, 24 tablas # Era 39 ``` **Dependencias:** Ninguna **Prioridad:** P1 **Estimacion:** 15 minutos --- ### PLAN-CRIT-002: Resolver Enums subscription_status **Discrepancia:** Dos enums diferentes con valores conflictivos **Accion:** Documentar ambos enums claramente, NO modificar codigo **Archivos a modificar:** 1. `docs/01-modulos/SAAS-004-billing.md` - seccion enums **Cambios especificos:** ```markdown ## Enums de Suscripcion ### tenants.subscription_status (estado general del tenant) - trialing: En periodo de prueba - active: Activo - past_due: Pago atrasado - cancelled: Cancelado - unpaid: Sin pago ### billing.subscription_status (estado interno de billing) - trial: En trial - active: Activo - past_due: Pago atrasado - cancelled: Cancelado - expired: Expirado **Nota:** El tenant usa `tenants.subscription_status` para estado general. El sistema de billing usa `billing.subscription_status` internamente. ``` **Dependencias:** Ninguna **Prioridad:** P1 **Estimacion:** 20 minutos --- ### PLAN-CRIT-003: Corregir SAAS-012 CRUD-Base **Discrepancia:** Documento describe patrones que no existen **Accion:** Reescribir documento para reflejar realidad **Archivos a modificar:** 1. `docs/01-modulos/SAAS-012-crud-base.md` - reescritura completa **Contenido nuevo:** ```markdown # SAAS-012: Patrones Base CRUD ## Metadata | Campo | Valor | |-------|-------| | Codigo | SAAS-012 | | Estado | Documentacion | | Tipo | Guia de Patrones | ## Descripcion Este documento describe los patrones CRUD recomendados para el proyecto. Actualmente cada modulo implementa su propia logica CRUD de forma independiente. ## Patron Actual Cada modulo contiene: - `*.controller.ts` - Endpoints REST - `*.service.ts` - Logica de negocio - `*.entity.ts` - Entidad TypeORM - `dto/*.dto.ts` - DTOs de request/response ## Campos Base Comunes Todas las entidades incluyen: - `id` (UUID, primary key) - `tenant_id` (UUID, foreign key) - `created_at` (timestamp) - `updated_at` (timestamp) - `deleted_at` (timestamp, soft delete) ## Patron de Paginacion ```typescript interface PaginationQuery { page?: number; limit?: number; sort?: string; order?: 'ASC' | 'DESC'; } ``` ## Implementacion Futura Se planea implementar clases base: - BaseCrudService - BaseCrudController - BaseEntity **Estado:** Pendiente de implementacion ``` **Dependencias:** Ninguna **Prioridad:** P1 **Estimacion:** 30 minutos --- ### PLAN-CRIT-004: Remover OAuth de Documentacion **Discrepancia:** OAuth documentado pero no implementado **Accion:** Mover OAuth a seccion "Roadmap/Futuro" **Archivos a modificar:** 1. `docs/01-modulos/SAAS-001-auth.md` **Cambios especificos:** - Remover endpoints OAuth de seccion "Endpoints" - Agregar seccion "## Roadmap" con OAuth planificado - Actualizar tabla de metadata con estado actual **Dependencias:** Ninguna **Prioridad:** P1 **Estimacion:** 20 minutos --- ### PLAN-CRIT-005: Remover MFA de Documentacion **Discrepancia:** MFA documentado pero no implementado **Accion:** Mover MFA a seccion "Roadmap/Futuro" **Archivos a modificar:** 1. `docs/01-modulos/SAAS-001-auth.md` **Cambios especificos:** - Remover endpoints MFA de seccion "Endpoints" - Agregar a seccion "## Roadmap" junto con OAuth - Remover campos MFA de entidad User documentada **Dependencias:** PLAN-CRIT-004 (mismo archivo) **Prioridad:** P1 **Estimacion:** 15 minutos (incluido en PLAN-CRIT-004) --- ### PLAN-CRIT-006: Documentar Modulos Faltantes **Discrepancia:** 4 modulos backend sin documentacion SAAS-XXX **Accion:** Agregar seccion de modulos de infraestructura **Archivos a modificar:** 1. `orchestration/inventarios/MASTER_INVENTORY.yml` 2. `orchestration/CONTEXT-MAP.yml` 3. `docs/_MAP.md` **Cambios especificos:** ```yaml # MASTER_INVENTORY.yml - agregar seccion modulos_infraestructura: - id: "INFRA-001" nombre: "health" descripcion: "Health check endpoints" estado: "completado" - id: "INFRA-002" nombre: "onboarding" descripcion: "Wizard de onboarding para nuevos tenants" estado: "completado" - id: "INFRA-003" nombre: "rbac" descripcion: "Role-Based Access Control" estado: "completado" nota: "Sub-modulo de SAAS-003" - id: "INFRA-004" nombre: "superadmin" descripcion: "Portal de super administracion" estado: "completado" ``` **Dependencias:** Ninguna **Prioridad:** P1 **Estimacion:** 25 minutos --- ### PLAN-CRIT-007: Corregir Estados Incorrectos **Discrepancia:** SAAS-008 y SAAS-009 marcados "Pendiente" **Accion:** Actualizar estado a "Completado" **Archivos a modificar:** 1. `docs/01-modulos/SAAS-008-audit-logs.md` - metadata 2. `docs/01-modulos/SAAS-009-feature-flags.md` - metadata **Cambios especificos:** ```markdown # En ambos archivos, cambiar: | Estado | Pendiente | # A: | Estado | Completado | ``` **Dependencias:** Ninguna **Prioridad:** P1 **Estimacion:** 5 minutos --- ## 3. Plan de Correcciones Altas ### PLAN-ALTO-001: Documentar payment_methods **Accion:** Agregar seccion a SAAS-004-billing.md **Archivos a modificar:** 1. `docs/01-modulos/SAAS-004-billing.md` **Contenido a agregar:** ```markdown ## Tabla: billing.payment_methods | Campo | Tipo | Descripcion | |-------|------|-------------| | id | UUID | Identificador unico | | tenant_id | UUID | Tenant propietario | | type | payment_method_type | card, bank_transfer, oxxo | | provider | VARCHAR | stripe, conekta, etc. | | external_id | VARCHAR | ID en proveedor externo | | card_brand | VARCHAR | Visa, Mastercard, etc. | | card_last4 | VARCHAR | Ultimos 4 digitos | | is_default | BOOLEAN | Metodo por defecto | | created_at | TIMESTAMP | Fecha creacion | ## Endpoints Payment Methods | Metodo | Ruta | Descripcion | |--------|------|-------------| | GET | /billing/payment-methods | Listar metodos | | POST | /billing/payment-methods | Agregar metodo | | DELETE | /billing/payment-methods/:id | Eliminar metodo | | PATCH | /billing/payment-methods/:id/default | Establecer por defecto | ``` **Dependencias:** Ninguna **Prioridad:** P2 **Estimacion:** 20 minutos --- ### PLAN-ALTO-002: Remover Session Management de Doc **Accion:** Mover a Roadmap **Archivos a modificar:** 1. `docs/01-modulos/SAAS-001-auth.md` **Cambios:** Mover GET/DELETE /auth/sessions a seccion Roadmap **Dependencias:** PLAN-CRIT-004 (mismo archivo) **Prioridad:** P2 **Estimacion:** Incluido en PLAN-CRIT-004 --- ### PLAN-ALTO-003: Actualizar Tenant Settings Doc **Accion:** Documentar manejo via JSONB **Archivos a modificar:** 1. `docs/01-modulos/SAAS-002-tenants.md` **Cambios:** ```markdown ## Configuraciones de Tenant Las configuraciones se almacenan en el campo `settings` (JSONB) de la tabla tenants. ### Acceso via API Las configuraciones se obtienen/actualizan junto con el tenant: - GET /tenants/current (incluye settings) - PATCH /tenants/current (permite actualizar settings) ### Estructura Settings ```json { "branding": { "logo_url": "...", "primary_color": "#..." }, "notifications": { "email_enabled": true, "push_enabled": false } } ``` ``` **Dependencias:** Ninguna **Prioridad:** P2 **Estimacion:** 15 minutos --- ### PLAN-ALTO-004: Actualizar Notifications a v2.0 **Accion:** Documentar features v2.0 implementados **Archivos a modificar:** 1. `docs/01-modulos/SAAS-007-notifications.md` **Secciones a agregar:** - DevicesController y endpoints - NotificationsGateway (WebSocket) - NotificationQueueService - Integracion con WhatsApp (referencia a SAAS-014) **Dependencias:** Ninguna **Prioridad:** P2 **Estimacion:** 45 minutos --- ### PLAN-ALTO-005: Completar Estructura Invoice **Accion:** Agregar campos faltantes a doc **Archivos a modificar:** 1. `docs/01-modulos/SAAS-004-billing.md` **Campos a agregar:** subtotal, tax, discount, period_start, period_end, hosted_invoice_url, customer_name, customer_email, billing_address **Dependencias:** Ninguna **Prioridad:** P2 **Estimacion:** 15 minutos --- ### PLAN-ALTO-006: Remover Audit Export de Doc **Accion:** Mover a Roadmap o marcar como "Pendiente" **Archivos a modificar:** 1. `docs/01-modulos/SAAS-008-audit-logs.md` **Cambios:** Agregar nota "Endpoint de exportacion pendiente de implementacion" **Dependencias:** PLAN-CRIT-007 **Prioridad:** P2 **Estimacion:** 5 minutos --- ### PLAN-ALTO-007: Documentar Campos AI Adicionales **Accion:** Agregar campos a SAAS-006 **Archivos a modificar:** 1. `docs/01-modulos/SAAS-006-ai-integration.md` **Campos:** model_type, request_id, endpoint, error_message, metadata **Dependencias:** Ninguna **Prioridad:** P2 **Estimacion:** 10 minutos --- ## 4. Plan de Correcciones Medias | ID | Descripcion | Archivo | Accion | Estimacion | |----|-------------|---------|--------|------------| | MEDIO-001 | User entity vs DDL | SAAS-001-auth.md | Sincronizar campos | 10 min | | MEDIO-002 | Session token field | SAAS-001-auth.md | Alinear nombres | 5 min | | MEDIO-003 | Trial period nombre | SAAS-004-billing.md | Usar trial_end | 5 min | | MEDIO-004 | Roles flexibles | SAAS-003-users.md | Actualizar doc | 15 min | | MEDIO-005 | Enums adicionales | DATABASE_INVENTORY.yml | Agregar 3 enums | 10 min | **Total estimacion correcciones medias:** 45 minutos --- ## 5. Orden de Ejecucion ### Fase 1: Correcciones Criticas (P1) **Tiempo estimado:** 1h 45min 1. PLAN-CRIT-007 - Estados incorrectos (5 min) 2. PLAN-CRIT-001 - Conteo tablas (15 min) 3. PLAN-CRIT-006 - Modulos faltantes (25 min) 4. PLAN-CRIT-002 - Enums subscription (20 min) 5. PLAN-CRIT-004/005 - OAuth/MFA (20 min combinado) 6. PLAN-CRIT-003 - CRUD-Base (30 min) ### Fase 2: Correcciones Altas (P2) **Tiempo estimado:** 1h 50min 1. PLAN-ALTO-001 - payment_methods (20 min) 2. PLAN-ALTO-003 - Tenant settings (15 min) 3. PLAN-ALTO-004 - Notifications v2.0 (45 min) 4. PLAN-ALTO-005 - Invoice campos (15 min) 5. PLAN-ALTO-006 - Audit export (5 min) 6. PLAN-ALTO-007 - AI campos (10 min) ### Fase 3: Correcciones Medias (P3) **Tiempo estimado:** 45min 1. Todas las correcciones MEDIO-* --- ## 6. Archivos Impactados (Consolidado) | Archivo | Correcciones que lo modifican | |---------|-------------------------------| | SAAS-001-auth.md | CRIT-004, CRIT-005, ALTO-002, MEDIO-001, MEDIO-002 | | SAAS-002-tenants.md | ALTO-003 | | SAAS-003-users.md | MEDIO-004 | | SAAS-004-billing.md | CRIT-002, ALTO-001, ALTO-005, MEDIO-003 | | SAAS-006-ai-integration.md | ALTO-007 | | SAAS-007-notifications.md | ALTO-004 | | SAAS-008-audit-logs.md | CRIT-007, ALTO-006 | | SAAS-009-feature-flags.md | CRIT-007 | | SAAS-012-crud-base.md | CRIT-003 | | MASTER_INVENTORY.yml | CRIT-001, CRIT-006 | | DATABASE_INVENTORY.yml | CRIT-001, MEDIO-005 | | PROJECT-STATUS.md | CRIT-001 | | CONTEXT-MAP.yml | CRIT-006 | | _MAP.md | CRIT-001, CRIT-006 | --- ## 7. Validaciones Post-Ejecucion ### 7.1 Validaciones Automaticas ```bash # Verificar conteos grep -r "database_tables" orchestration/inventarios/ grep -r "12 schemas" docs/ # Verificar estados grep -E "Estado.*Pendiente" docs/01-modulos/SAAS-008*.md grep -E "Estado.*Pendiente" docs/01-modulos/SAAS-009*.md # Verificar referencias grep -r "OAuth" docs/01-modulos/SAAS-001*.md grep -r "MFA" docs/01-modulos/SAAS-001*.md ``` ### 7.2 Validaciones Manuales - [ ] Revisar consistencia de estados en todos los SAAS-XXX - [ ] Verificar que Roadmap incluye features removidos - [ ] Confirmar enums documentados vs codigo - [ ] Validar estructura de modulos_infraestructura --- ## 8. Resumen del Plan | Tipo | Cantidad | Tiempo Total | |------|----------|--------------| | Correcciones Criticas | 7 | 1h 45min | | Correcciones Altas | 7 | 1h 50min | | Correcciones Medias | 5 | 45min | | **TOTAL** | **19** | **4h 20min** | --- **Siguiente Paso:** FASE 4 - Validacion del Plan contra Analisis --- **Creado por:** Claude Code **Fecha:** 2026-01-10