template-saas/orchestration/_archivo/analisis-previo/FASE-3-PLAN-CORRECCION-INTEGRACION-2026-01-10.md
rckrdmrd 50a821a415
Some checks failed
CI / Backend CI (push) Has been cancelled
CI / Frontend CI (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / CI Summary (push) Has been cancelled
[SIMCO-V38] feat: Actualizar a SIMCO v3.8.0
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8
- Actualizaciones de configuracion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:08 -06:00

13 KiB

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:

# 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:

## 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:

# 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:

# 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:

## 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:

## 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