# Master Inventory - ERP Core
# Ultima actualizacion: 2026-01-07
# SSOT: Single Source of Truth para metricas del proyecto
# NOTA: Los Story Points en este archivo son los valores CANONICOS
#       Cualquier discrepancia con otros documentos debe corregirse aqui

proyecto:
  nombre: ERP Core
  tipo: Modulo Base / Foundation
  version: 1.0.0
  progreso: 100%  # 219 SP completados (184 SP Sprints 1-6 + 35 SP Sprint 7)
  fase_actual: fase_02_core_business
  proxima_accion: Sprint 8 - Reports Module

# =============================================================================
# IMPLEMENTACION SPRINTS 1-3 (2026-01-06)
# =============================================================================

implementacion_sprints:
  fecha_inicio: "2026-01-06"
  metodologia: CAPVED
  orquestador: Claude Code Opus 4.5

  resumen:
    story_points_completados: 219
    story_points_totales: 219
    progreso: 100%
    sprints_completados: 7
    sprints_pendientes: 0

  sprint_1:
    nombre: "Database Validation + Tests Setup + Catalogs"
    story_points: 36
    status: COMPLETADO
    tareas:
      - {id: DB-001, nombre: "HR Schema", sp: 0, status: "ya existia"}
      - {id: DB-002, nombre: "RLS Validation Tests", sp: 5, status: completado}
      - {id: DB-003, nombre: "track_field_changes()", sp: 0, status: "ya existia"}
      - {id: DB-004, nombre: "Seed Data Catalogs", sp: 0, status: "ya existia"}
      - {id: BE-001, nombre: "Jest + Supertest Setup", sp: 5, status: completado, tests: 13}
      - {id: BE-002, nombre: "Auth Tests", sp: 8, status: completado, tests: 59}
      - {id: FE-001, nombre: "Catalogs Structure", sp: 5, status: completado}
      - {id: FE-002, nombre: "Countries Pages", sp: 5, status: completado, pages: 6}

  sprint_2:
    nombre: "Tests Foundation + Catalogs Frontend"
    story_points: 37
    status: COMPLETADO
    tareas:
      - {id: BE-003, nombre: "Tests Users Module", sp: 5, status: completado, tests: 74}
      - {id: BE-004, nombre: "Tests Roles Module", sp: 5, status: completado, tests: 48}
      - {id: BE-005, nombre: "Tests Tenants Module", sp: 5, status: completado, tests: 77}
      - {id: BE-006, nombre: "Permission Cache Service", sp: 4, status: completado, tests: 37}
      - {id: FE-003, nombre: "Currencies Pages", sp: 5, status: completado, pages: 4}
      - {id: FE-004, nombre: "Units of Measure Pages", sp: 5, status: completado, pages: 5}
      - {id: FE-005, nombre: "Product Categories Pages", sp: 8, status: completado, pages: 5}
      - {id: FE-006, nombre: "Routes Catalogs", sp: 0, status: completado, routes: 20}

  sprint_3:
    nombre: "OAuth + Settings Frontend"
    story_points: 36
    status: COMPLETADO
    tareas:
      - {id: BE-007, nombre: "Tests Financial Module", sp: 8, status: completado, tests: 93}
      - {id: BE-008, nombre: "Tests Inventory Module", sp: 6, status: completado, tests: 69}
      - {id: BE-009, nombre: "OAuth2 Google/Microsoft", sp: 8, status: completado, tests: 32}
      - {id: FE-007, nombre: "Stores Catalogs Zustand", sp: 3, status: completado, stores: 4}
      - {id: FE-008, nombre: "Feature Settings Structure", sp: 3, status: completado}
      - {id: FE-009, nombre: "System Settings Page", sp: 5, status: completado}
      - {id: FE-010, nombre: "Tenant Settings Page", sp: 3, status: completado}

  sprint_4:
    nombre: "2FA + Settings Completion"
    story_points: 33
    status: COMPLETADO
    fecha_completado: "2026-01-07"
    tareas:
      - {id: BE-010, nombre: "2FA/MFA Implementation", sp: 8, status: completado}
      - {id: BE-011, nombre: "Email Verification Flow", sp: 4, status: completado}
      - {id: FE-011, nombre: "User Preferences Page", sp: 5, status: completado}
      - {id: FE-012, nombre: "Feature Flags Management", sp: 5, status: completado}
      - {id: FE-013, nombre: "Settings Stores Zustand", sp: 3, status: completado}
      - {id: FE-014, nombre: "Theme Selector Component", sp: 3, status: completado}
      - {id: FE-015, nombre: "Tests Frontend Vitest", sp: 3, status: completado}
      - {id: FE-016, nombre: "Tenant Settings completar", sp: 2, status: completado}
    archivos_creados:
      backend:
        - src/modules/auth/mfa.service.ts
        - src/modules/auth/mfa.controller.ts
        - src/modules/auth/mfa.routes.ts
        - src/modules/auth/entities/user-mfa.entity.ts
        - src/modules/auth/services/email-verification.service.ts
        - src/modules/auth/email-verification.controller.ts
        - src/modules/auth/email-verification.routes.ts
        - src/modules/auth/entities/email-verification-token.entity.ts
        - src/shared/services/email.service.ts
      frontend:
        - src/pages/settings/UserPreferencesPage.tsx
        - src/pages/settings/FeatureFlagsPage.tsx
        - src/pages/settings/components/NotificationSettingsForm.tsx
        - src/pages/settings/components/DashboardSettingsForm.tsx
        - src/test/mocks/handlers.ts
        - src/test/mocks/server.ts
        - src/shared/components/atoms/Button/__tests__/Button.test.tsx
        - src/features/settings/__tests__/userPreferences.store.test.ts
      database:
        - database/ddl/01-auth-mfa-email-verification.sql

  sprint_5:
    nombre: "Estabilizacion + DDL Migrations"
    story_points: 12
    status: COMPLETADO
    fecha_inicio: "2026-01-07"
    fecha_completado: "2026-01-07"
    tareas:
      - {id: FIX-001, nombre: "Corregir TypeScript UserPreferencesPage", sp: 1, status: completado}
      - {id: FIX-002, nombre: "Corregir TypeScript FeatureFlagsPage", sp: 2, status: completado}
      - {id: FIX-003, nombre: "Corregir DashboardSettingsForm Select", sp: 1, status: completado}
      - {id: FIX-004, nombre: "Corregir useTheme null safety", sp: 1, status: completado}
      - {id: FIX-005, nombre: "Corregir tsconfig.json backend tests", sp: 1, status: completado}
      - {id: FIX-006, nombre: "Corregir oauth.service.ts TypeORM types", sp: 1, status: completado}
      - {id: DDL-001, nombre: "Crear DDL MFA + Email Verification", sp: 3, status: completado}
      - {id: DOC-001, nombre: "Actualizar MASTER_INVENTORY", sp: 2, status: completado}

  sprint_6:
    nombre: "Fase 2 - Catalogs & Settings Foundation"
    story_points: 30
    status: COMPLETADO
    fecha_inicio: "2026-01-07"
    fecha_completado: "2026-01-07"
    tareas:
      - {id: BE-012, nombre: "Countries/States API + Entity", sp: 5, status: completado}
      - {id: BE-013, nombre: "Currency Exchange Rates Service", sp: 5, status: completado}
      - {id: BE-014, nombre: "UoM Conversions Enhancement", sp: 4, status: completado}
      - {id: BE-015, nombre: "Partners CRUD (verificado completo)", sp: 0, status: ya_existia}
      - {id: BE-016, nombre: "Settings Service 3-Level", sp: 6, status: completado}
      - {id: DDL-002, nombre: "DDL currency_rates + settings", sp: 2, status: completado}
      - {id: TEST-001, nombre: "Tests Core Services", sp: 5, status: completado, tests: 145}
      - {id: FE-017, nombre: "Catalogs Frontend APIs (ya conectado)", sp: 0, status: ya_existia}
      - {id: DOC-002, nombre: "Actualizar MASTER_INVENTORY", sp: 3, status: completado}
    archivos_creados:
      backend:
        - src/modules/core/entities/state.entity.ts
        - src/modules/core/states.service.ts
        - src/modules/core/entities/currency-rate.entity.ts
        - src/modules/core/currency-rates.service.ts
        - src/modules/system/entities/system-setting.entity.ts
        - src/modules/system/entities/tenant-setting.entity.ts
        - src/modules/system/entities/user-preference.entity.ts
        - src/modules/system/settings.service.ts
        - src/modules/system/settings.controller.ts
        - src/modules/system/settings.routes.ts
      tests:
        - src/modules/core/__tests__/countries.service.spec.ts
        - src/modules/core/__tests__/states.service.spec.ts
        - src/modules/core/__tests__/currencies.service.spec.ts
        - src/modules/core/__tests__/currency-rates.service.spec.ts
        - src/modules/core/__tests__/uom.service.spec.ts
        - src/modules/system/__tests__/settings.service.spec.ts
      database:
        - database/ddl/02-core-extensions.sql
        - database/ddl/09-system-extensions.sql

  sprint_7:
    nombre: "Fase 2 - Audit & Notifications"
    story_points: 35
    status: COMPLETADO
    fecha_inicio: "2026-01-07"
    fecha_completado: "2026-01-07"
    tareas:
      - {id: BE-017, nombre: "Audit Trail System (TypeORM Subscriber)", sp: 8, status: completado}
      - {id: BE-018, nombre: "Access Logs Service", sp: 6, status: completado}
      - {id: BE-019, nombre: "Security Events Service", sp: 6, status: completado}
      - {id: BE-020, nombre: "WebSocket Gateway Real-time Notifications", sp: 5, status: completado}
      - {id: DDL-003, nombre: "DDL audit tables", sp: 2, status: completado}
      - {id: FE-018, nombre: "Notification Center UI", sp: 4, status: completado}
      - {id: FE-019, nombre: "Audit Logs Pages (3)", sp: 4, status: completado}
    archivos_creados:
      backend:
        - src/modules/audit/entities/audit-log.entity.ts
        - src/modules/audit/entities/access-log.entity.ts
        - src/modules/audit/entities/security-event.entity.ts
        - src/modules/audit/audit.service.ts
        - src/modules/audit/audit.controller.ts
        - src/modules/audit/audit.subscriber.ts
        - src/modules/audit/audit-context.ts
        - src/modules/audit/access-logs.service.ts
        - src/modules/audit/access-logs.controller.ts
        - src/modules/audit/security-events.service.ts
        - src/modules/audit/security-events.controller.ts
        - src/modules/audit/utils/brute-force-detector.ts
        - src/modules/audit/utils/anomaly-detector.ts
        - src/modules/notifications/websocket/notification.gateway.ts
        - src/shared/middleware/access-logger.middleware.ts
      frontend:
        - src/features/notifications/components/NotificationBell.tsx
        - src/features/notifications/components/NotificationDropdown.tsx
        - src/features/notifications/stores/notifications.store.ts
        - src/features/notifications/hooks/useNotificationSocket.ts
        - src/features/audit/components/AuditLogTable.tsx
        - src/features/audit/components/SecurityDashboard.tsx
        - src/pages/notifications/NotificationsPage.tsx
        - src/pages/audit/AuditLogsPage.tsx
        - src/pages/audit/AccessLogsPage.tsx
        - src/pages/audit/SecurityEventsPage.tsx
      database:
        - database/ddl/13-audit.sql

  metricas_implementacion:
    backend:
      tests_totales: 647
      cobertura: ">95%"
      modulos_testeados: [auth, users, roles, tenants, financial, inventory, oauth, core, system, audit]
    frontend:
      pages_creadas: 29  # +4 (Notifications, AuditLogs, AccessLogs, SecurityEvents)
      stores_creados: 6  # +2 (notifications, audit)
      routes_agregadas: 27  # +4
      build_time: "5.02s"
    database:
      ddl_validados: 17  # +2 (13-audit.sql, updates)
      seeds_cargados: 7
      rls_tests: 10+

# Metricas consolidadas
metricas:
  documentacion:
    directivas_creadas: 6
    templates_creados: 4
    total_archivos_docs: 630
    archivos_migrados_gamilit: 119

  modulos:
    total: 15
    p0_criticos: 4
    p1_core: 6
    p2_extended: 5
    documentados: 10
    migrados_gamilit: 10

modulos:
  total: 15
  implementados: 0
  en_desarrollo: 0
  documentacion_completa: 5
  rf_documentados: 10
  documentacion_pendiente: 5
  migrados_estructura_gamilit: 10

  lista:
    - codigo: MGN-001
      nombre: auth
      estado: migrado_gamilit
      descripcion: Autenticacion JWT, OAuth, sessions
      ubicacion_gamilit: docs/01-fase-foundation/MGN-001-auth/
      documentos:
        - requerimientos/RF-AUTH-*.md (5 archivos)
        - especificaciones/ET-*.md (3 archivos)
        - historias-usuario/US-MGN001-*.md (4 archivos)
        - implementacion/TRACEABILITY.yml
      story_points: 40
      tablas_bd: 6
      endpoints: 7
      test_cases: 8

    - codigo: MGN-002
      nombre: users
      estado: migrado_gamilit
      descripcion: Gestion de usuarios CRUD, perfil, preferencias
      ubicacion_gamilit: docs/01-fase-foundation/MGN-002-users/
      documentos:
        - requerimientos/RF-USER-*.md (5 archivos)
        - especificaciones/ET-*.md (2 archivos)
        - historias-usuario/US-MGN002-*.md (4 archivos)
        - implementacion/TRACEABILITY.yml
      story_points: 35
      tablas_bd: 6
      endpoints: 14
      test_cases: 18

    - codigo: MGN-003
      nombre: roles
      estado: migrado_gamilit
      descripcion: Roles y permisos (RBAC), guards, decoradores
      ubicacion_gamilit: docs/01-fase-foundation/MGN-003-roles/
      documentos:
        - requerimientos/RF-ROLE-*.md (4 archivos)
        - especificaciones/ET-*.md (2 archivos)
        - historias-usuario/US-MGN003-*.md (4 archivos)
        - implementacion/TRACEABILITY.yml
      story_points: 40
      tablas_bd: 4
      endpoints: 10
      test_cases: 14

    - codigo: MGN-004
      nombre: tenants
      estado: migrado_gamilit
      descripcion: Multi-tenancy, aislamiento RLS, subscripciones
      ubicacion_gamilit: docs/01-fase-foundation/MGN-004-tenants/
      documentos:
        - requerimientos/RF-TENANT-*.md (4 archivos)
        - especificaciones/ET-*.md (2 archivos)
        - historias-usuario/US-MGN004-*.md (4 archivos)
        - implementacion/TRACEABILITY.yml
      story_points: 35
      tablas_bd: 8
      endpoints: 25
      test_cases: 18

    - codigo: MGN-005
      nombre: catalogs
      estado: rf_documentado
      descripcion: Catalogos maestros genericos
      ubicacion_gamilit: docs/02-fase-core-business/MGN-005-catalogs/
      documentos:
        - requerimientos/RF-CATALOG-*.md (5 archivos)
        - requerimientos/INDICE-RF-CATALOGS.md
        - especificaciones/ (pendiente)
        - historias-usuario/ (pendiente)
        - implementacion/TRACEABILITY.yml
      story_points: 30
      rf_count: 5
      tablas_bd: 3
      endpoints: 12

    - codigo: MGN-006
      nombre: settings
      estado: rf_documentado
      descripcion: Configuraciones del sistema, tenant y usuario
      ubicacion_gamilit: docs/02-fase-core-business/MGN-006-settings/
      documentos:
        - requerimientos/RF-SETTINGS-001.md (Configuracion Sistema)
        - requerimientos/RF-SETTINGS-002.md (Configuracion Tenant)
        - requerimientos/RF-SETTINGS-003.md (Preferencias Usuario)
        - requerimientos/RF-SETTINGS-004.md (Feature Flags)
        - requerimientos/INDICE-RF-SETTINGS.md
        - especificaciones/ (pendiente)
        - historias-usuario/ (pendiente)
        - implementacion/TRACEABILITY.yml (actualizado)
      story_points: 25
      rf_count: 4
      tablas_bd: 5
      endpoints: 15

    - codigo: MGN-007
      nombre: audit
      estado: rf_documentado
      descripcion: Auditoria, access logs y eventos de seguridad
      ubicacion_gamilit: docs/02-fase-core-business/MGN-007-audit/
      documentos:
        - requerimientos/RF-AUDIT-001.md (Audit Trail)
        - requerimientos/RF-AUDIT-002.md (Access Logs)
        - requerimientos/RF-AUDIT-003.md (Security Events)
        - requerimientos/RF-AUDIT-004.md (Consultas y Reportes)
        - requerimientos/INDICE-RF-AUDIT.md
        - especificaciones/ (pendiente)
        - historias-usuario/ (pendiente)
        - implementacion/TRACEABILITY.yml (actualizado)
      story_points: 30
      rf_count: 4
      tablas_bd: 4
      endpoints: 12

    - codigo: MGN-008
      nombre: notifications
      estado: rf_documentado
      descripcion: Notificaciones in-app, email y push
      ubicacion_gamilit: docs/02-fase-core-business/MGN-008-notifications/
      documentos:
        - requerimientos/RF-NOTIF-001.md (In-App)
        - requerimientos/RF-NOTIF-002.md (Email)
        - requerimientos/RF-NOTIF-003.md (Push)
        - requerimientos/RF-NOTIF-004.md (Preferencias)
        - requerimientos/INDICE-RF-NOTIF.md
        - especificaciones/ (pendiente)
        - historias-usuario/ (pendiente)
        - implementacion/TRACEABILITY.yml (actualizado)
      story_points: 25
      rf_count: 4
      tablas_bd: 6
      endpoints: 15

    - codigo: MGN-009
      nombre: reports
      estado: rf_documentado
      descripcion: Reportes predefinidos, dashboards y report builder
      ubicacion_gamilit: docs/02-fase-core-business/MGN-009-reports/
      documentos:
        - requerimientos/RF-REPORT-001.md (Predefinidos)
        - requerimientos/RF-REPORT-002.md (Dashboards)
        - requerimientos/RF-REPORT-003.md (Report Builder)
        - requerimientos/RF-REPORT-004.md (Programados)
        - requerimientos/INDICE-RF-REPORT.md
        - especificaciones/ (pendiente)
        - historias-usuario/ (pendiente)
        - implementacion/TRACEABILITY.yml (actualizado)
      story_points: 35
      rf_count: 4
      tablas_bd: 7
      endpoints: 18

    - codigo: MGN-010
      nombre: financial
      estado: rf_documentado
      descripcion: Base financiera (cuentas, monedas, periodos, asientos)
      ubicacion_gamilit: docs/02-fase-core-business/MGN-010-financial/
      documentos:
        - requerimientos/RF-FIN-001.md (Plan de Cuentas)
        - requerimientos/RF-FIN-002.md (Monedas y TC)
        - requerimientos/RF-FIN-003.md (Periodos Contables)
        - requerimientos/RF-FIN-004.md (Asientos Contables)
        - requerimientos/INDICE-RF-FINANCIAL.md
        - especificaciones/ (pendiente)
        - historias-usuario/ (pendiente)
        - implementacion/TRACEABILITY.yml (actualizado)
      story_points: 45
      rf_count: 4
      tablas_bd: 10
      endpoints: 25

    - codigo: MGN-011
      nombre: inventory
      estado: planificado
      descripcion: Inventario basico

    - codigo: MGN-012
      nombre: purchasing
      estado: planificado
      descripcion: Compras basicas

    - codigo: MGN-013
      nombre: crm
      estado: planificado
      descripcion: CRM basico

    - codigo: MGN-014
      nombre: integration
      estado: planificado
      descripcion: APIs de integracion

verticales_dependientes:
  - nombre: construccion
    codigo: MAI/MAE
    estado: 40%
    fase: EN_DESARROLLO
    path: ../verticales/construccion/
    modulos: 18
    specs_aplicables: 26
    specs_implementadas: 0
    tablas_heredadas: 124
    tablas_especificas: 33

  - nombre: mecanicas-diesel
    codigo: MMD
    estado: 20%
    fase: DDL_IMPLEMENTADO
    path: ../verticales/mecanicas-diesel/
    modulos: 6
    specs_aplicables: 25
    specs_implementadas: 0
    tablas_heredadas: 97
    tablas_especificas: 30

  - nombre: vidrio-templado
    codigo: VT
    estado: 15%
    fase: PLANIFICACION_COMPLETA
    path: ../verticales/vidrio-templado/
    modulos: 8
    specs_aplicables: 25
    specs_implementadas: 0
    tablas_heredadas: 97
    tablas_especificas: 25

  - nombre: retail
    codigo: RT
    estado: 15%
    fase: PLANIFICACION_COMPLETA
    path: ../verticales/retail/
    modulos: 10
    specs_aplicables: 24
    specs_implementadas: 0
    tablas_heredadas: 102
    tablas_especificas: 30

  - nombre: clinicas
    codigo: CL
    estado: 15%
    fase: PLANIFICACION_COMPLETA
    path: ../verticales/clinicas/
    modulos: 12
    specs_aplicables: 24
    specs_implementadas: 0
    tablas_heredadas: 100
    tablas_especificas: 35

# ============================================================================
# MAPEO DE SPECS A VERTICALES (Referencia)
# ============================================================================
mapeo_specs_verticales:
  documento_completo: docs/04-modelado/MAPEO-SPECS-VERTICALES.md
  fecha_actualizacion: 2025-12-08
  resumen:
    total_specs: 30
    por_vertical:
      construccion: {aplicables: 26, obligatorias: 22, opcionales: 4}
      mecanicas_diesel: {aplicables: 25, obligatorias: 23, opcionales: 2}
      vidrio_templado: {aplicables: 25, obligatorias: 22, opcionales: 3}
      retail: {aplicables: 24, obligatorias: 21, opcionales: 3}
      clinicas: {aplicables: 24, obligatorias: 20, opcionales: 4}

documentacion:
  total_archivos: 630
  archivos_md: 615+
  archivos_sql: 0
  path: /docs/

  # Fase 01 - Foundation (completa)
  modulo_auth:
    requerimientos: 6
    especificaciones_tecnicas: 3
    user_stories: 5
    test_plans: 1

  modulo_users:
    requerimientos: 5
    especificaciones_tecnicas: 2
    user_stories: 4
    test_plans: 1

  modulo_rbac:
    requerimientos: 5
    especificaciones_tecnicas: 2
    user_stories: 4
    test_plans: 1

  modulo_tenants:
    requerimientos: 5
    especificaciones_tecnicas: 2
    user_stories: 4
    test_plans: 1

  # Fase 02 - Core Business (RF documentados)
  modulo_catalogs:
    requerimientos: 5
    especificaciones_tecnicas: 0
    user_stories: 0

  modulo_settings:
    requerimientos: 4
    especificaciones_tecnicas: 0
    user_stories: 0

  modulo_audit:
    requerimientos: 4
    especificaciones_tecnicas: 0
    user_stories: 0

  modulo_notifications:
    requerimientos: 4
    especificaciones_tecnicas: 0
    user_stories: 0

  modulo_reports:
    requerimientos: 4
    especificaciones_tecnicas: 0
    user_stories: 0

  modulo_financial:
    requerimientos: 4
    especificaciones_tecnicas: 0
    user_stories: 0

schemas_bd:
  - nombre: core_auth
    tablas_documentadas: 6
    estado: documentado

  - nombre: core_users
    tablas_documentadas: 6
    estado: documentado

  - nombre: core_rbac
    tablas_documentadas: 4
    estado: documentado

  - nombre: core_tenants
    tablas_documentadas: 8
    estado: documentado

  - nombre: core_catalogs
    tablas_estimadas: 3
    estado: rf_documentado

  - nombre: core_settings
    tablas_estimadas: 5
    estado: rf_documentado

  - nombre: core_audit
    tablas_estimadas: 4
    estado: rf_documentado

  - nombre: core_notifications
    tablas_estimadas: 6
    estado: rf_documentado

  - nombre: core_reports
    tablas_estimadas: 7
    estado: rf_documentado

  - nombre: core_financial
    tablas_estimadas: 10
    estado: rf_documentado

# Resumen de documentacion completada
documentacion_completada:
  # Fase 01
  auth_module:
    fecha_completado: 2025-12-05
    documentos_creados: 14
    story_points_totales: 29
    sprints_estimados: 2
    tablas_bd: 6
    endpoints: 7
    casos_prueba: 8

  users_module:
    fecha_completado: 2025-12-05
    documentos_creados: 14
    story_points_totales: 21
    sprints_estimados: 2
    tablas_bd: 6
    endpoints: 14
    casos_prueba: 18

  rbac_module:
    fecha_completado: 2025-12-05
    documentos_creados: 13
    story_points_totales: 29
    sprints_estimados: 2
    tablas_bd: 4
    endpoints: 10
    casos_prueba: 14

  tenants_module:
    fecha_completado: 2025-12-05
    documentos_creados: 13
    story_points_totales: 47
    sprints_estimados: 3
    tablas_bd: 8
    endpoints: 25
    casos_prueba: 18

  # Fase 02 - RF Documentados
  fase_02_rf:
    fecha_completado: 2025-12-05
    modulos_documentados: 6
    total_rf: 25
    story_points: 190
    descripcion: "RF documentados para MGN-005 a MGN-010"

# Totales acumulados
totales:
  modulos_documentados: 10
  modulos_con_estructura: 10
  documentos_totales: 109
  rf_total: 46
  et_total: 9
  us_total: 17
  story_points_fase_1: 150
  story_points_fase_2: 190
  story_points_total: 340
  tablas_bd: 59
  endpoints: 148
  test_cases: 58

# Conteos RF por Fase
rf_por_fase:
  fase_01_foundation:
    total: 21
    por_modulo:
      - {modulo: MGN-001, rf: 6}
      - {modulo: MGN-002, rf: 5}
      - {modulo: MGN-003, rf: 5}
      - {modulo: MGN-004, rf: 5}

  fase_02_core_business:
    total: 25
    por_modulo:
      - {modulo: MGN-005, rf: 5}
      - {modulo: MGN-006, rf: 4}
      - {modulo: MGN-007, rf: 4}
      - {modulo: MGN-008, rf: 4}
      - {modulo: MGN-009, rf: 4}
      - {modulo: MGN-010, rf: 4}

# Hitos
hitos:
  fase_1_foundation_core:
    estado: COMPLETADO
    fecha: 2025-12-05
    modulos:
      - MGN-001 Auth
      - MGN-002 Users
      - MGN-003 RBAC
      - MGN-004 Tenants
    descripcion: "Todos los modulos P0 criticos documentados y migrados GAMILIT"

  fase_2_core_business_structure:
    estado: COMPLETADO
    fecha: 2025-12-05
    modulos:
      - MGN-005 Catalogs (estructura)
      - MGN-006 Settings (estructura)
      - MGN-007 Audit (estructura)
      - MGN-008 Notifications (estructura)
      - MGN-009 Reports (estructura)
      - MGN-010 Financial (estructura)
    descripcion: "Estructura GAMILIT creada para todos los modulos de Fase 02"

  fase_2_rf_documented:
    estado: COMPLETADO
    fecha: 2025-12-05
    modulos:
      - MGN-005 Catalogs (5 RF)
      - MGN-006 Settings (4 RF)
      - MGN-007 Audit (4 RF)
      - MGN-008 Notifications (4 RF)
      - MGN-009 Reports (4 RF)
      - MGN-010 Financial (4 RF)
    descripcion: "RF documentados para todos los modulos de Fase 02 (25 RF total)"

  proximo_hito:
    nombre: fase_2_et_documented
    descripcion: "Especificaciones Tecnicas para Fase 02"
    modulos_pendientes: 6

  fase_3_gap_analysis:
    estado: COMPLETADO
    fecha: 2025-12-08
    descripcion: "Analisis de gaps vs Odoo 18 - 100% documentados"
    metricas:
      gaps_p0_documentados: 18
      gaps_p1_documentados: 22
      patrones_tecnicos_documentados: 2
      especificaciones_transversales: 30
      workflows_documentados: 3

# ============================================================================
# ESPECIFICACIONES TRANSVERSALES (Gap Analysis vs Odoo 18)
# ============================================================================
especificaciones_transversales:
  total: 30
  fecha_creacion: 2025-12-08
  ubicacion: docs/04-modelado/especificaciones-tecnicas/transversal/

  # Gaps P0 - Funcionales (16 documentos)
  p0_funcionales:
    - archivo: SPEC-SISTEMA-SECUENCIAS.md
      gap: "GAP-MGN-004-002 (ir.sequence)"
      sp: 8
    - archivo: SPEC-VALORACION-INVENTARIO.md
      gap: "GAP-MGN-005-001 (FIFO/AVCO)"
      sp: 21
    - archivo: SPEC-SEGURIDAD-API-KEYS-PERMISOS.md
      gap: "GAP-MGN-001-001,002,003 (API Keys + ACL + RLS)"
      sp: 31
    - archivo: SPEC-REPORTES-FINANCIEROS.md
      gap: "GAP-MGN-004-001 (Balance/P&L)"
      sp: 13
    - archivo: SPEC-PORTAL-PROVEEDORES.md
      gap: "GAP-MGN-013-001 (Portal RFQ)"
      sp: 13
    - archivo: SPEC-NOMINA-BASICA.md
      gap: "GAP-MGN-010-001 (hr_payroll)"
      sp: 21
    - archivo: SPEC-GASTOS-EMPLEADOS.md
      gap: "GAP-MGN-010-002 (hr_expense)"
      sp: 13
    - archivo: SPEC-TAREAS-RECURRENTES.md
      gap: "GAP-MGN-011-001 (project.task.recurrence)"
      sp: 13
    - archivo: SPEC-SCHEDULER-REPORTES.md
      gap: "GAP-MGN-012-001 (ir.cron + mail)"
      sp: 8
    - archivo: SPEC-INTEGRACION-CALENDAR.md
      gap: "GAP-MGN-014-001 (calendar + google_calendar)"
      sp: 8

  # Gaps P1 (14 documentos)
  p1:
    - archivo: SPEC-CONTABILIDAD-ANALITICA-MULTIDIMENSIONAL.md
      gap: "GAP-MGN-008-001"
      sp: 21
    - archivo: SPEC-CONCILIACION-BANCARIA.md
      gap: "GAP-MGN-004-004"
      sp: 21
    - archivo: SPEC-FIRMA-ELECTRONICA-NOM151.md
      gap: "GAP-MGN-013-002"
      sp: 13
    - archivo: SPEC-TWO-FACTOR-AUTHENTICATION.md
      gap: "GAP-MGN-001-004"
      sp: 13
    - archivo: SPEC-TRAZABILIDAD-LOTES-SERIES.md
      gap: "GAP-MGN-005-002"
      sp: 13
    - archivo: SPEC-PRICING-RULES.md
      gap: "GAP-MGN-007-002"
      sp: 8
    - archivo: SPEC-BLANKET-ORDERS.md
      gap: "GAP-MGN-006-002"
      sp: 13
    - archivo: SPEC-OAUTH2-SOCIAL-LOGIN.md
      gap: "GAP-MGN-001-005"
      sp: 8
    - archivo: SPEC-INVENTARIOS-CICLICOS.md
      gap: "GAP-MGN-005-003"
      sp: 13
    - archivo: SPEC-IMPUESTOS-AVANZADOS.md
      gap: "GAP-MGN-004-005"
      sp: 8
    - archivo: SPEC-PLANTILLAS-CUENTAS.md
      gap: "GAP-MGN-004-006"
      sp: 8
    - archivo: SPEC-CONSOLIDACION-FINANCIERA.md
      gap: "GAP-MGN-002-001"
      sp: 13
    - archivo: SPEC-TASAS-CAMBIO-AUTOMATICAS.md
      gap: "GAP-MGN-003-001"
      sp: 5
    - archivo: SPEC-ALERTAS-PRESUPUESTO.md
      gap: "GAP-MGN-008-001"
      sp: 8
    - archivo: SPEC-PRESUPUESTOS-REVISIONES.md
      gap: "GAP-MGN-008-002"
      sp: 8
    - archivo: SPEC-RRHH-EVALUACIONES-SKILLS.md
      gap: "GAP-MGN-010-001,002,003"
      sp: 26
    - archivo: SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN.md
      gap: "GAP-MGN-011-001,002"
      sp: 13
    - archivo: SPEC-LOCALIZACION-PAISES.md
      gap: "GAP-MGN-002-002"
      sp: 13

  # Patrones Tecnicos P0 (2 documentos)
  patrones_tecnicos:
    - archivo: SPEC-MAIL-THREAD-TRACKING.md
      patron: "mail.thread mixin (tracking/mensajeria)"
      sp: 13
    - archivo: SPEC-WIZARD-TRANSIENT-MODEL.md
      patron: "TransientModel (wizards)"
      sp: 8

  # Total SP cubiertos
  total_sp: 394

# ============================================================================
# WORKFLOWS DOCUMENTADOS
# ============================================================================
workflows:
  total: 3
  ubicacion: docs/04-modelado/workflows/
  documentos:
    - archivo: WORKFLOW-CIERRE-PERIODO-CONTABLE.md
      gap: "GAP-MGN-004-003 (lock dates)"
    - archivo: WORKFLOW-3-WAY-MATCH.md
      gap: "GAP-MGN-006-001 (3-way match)"
    - archivo: WORKFLOW-PAGOS-ANTICIPADOS.md
      gap: "GAP-MGN-007-001 (down payments)"

# ============================================================================
# ANALISIS DE GAPS
# ============================================================================
analisis_gaps:
  archivo_principal: orchestration/01-analisis/ANALISIS-GAPS-CONSOLIDADO.md
  version: "10.0"
  fecha: 2025-12-08
  estado: "100% P0 + 100% P1 + Patrones Tecnicos COMPLETOS"
  metricas:
    gaps_p0_total: 18
    gaps_p0_documentados: 18
    gaps_p1_total: 22
    gaps_p1_documentados: 22
    patrones_tecnicos_total: 2
    patrones_tecnicos_documentados: 2
    cobertura: "100%"

# ============================================================================
# IMPLEMENTACION DATABASE (DDL)
# ============================================================================
implementacion_database:
  estado: "EN_PROGRESO"
  fecha_inicio: 2025-12-08
  ubicacion: database/ddl/

  archivos_ddl:
    # DDL Base (existentes)
    - archivo: 00-prerequisites.sql
      estado: existente
      descripcion: "Extensiones y configuracion inicial"

    - archivo: 01-auth.sql
      estado: existente
      descripcion: "Schema auth base: tenants, companies, users, roles, permissions, sessions"
      tablas: 10

    - archivo: 01-auth-extensions.sql
      estado: NUEVO
      fecha: 2025-12-08
      descripcion: "Extensiones de seguridad: Groups, ACL, Record Rules, Field Permissions, API Keys, 2FA, OAuth2"
      specs_relacionadas:
        - SPEC-TWO-FACTOR-AUTHENTICATION.md
        - SPEC-SEGURIDAD-API-KEYS-PERMISOS.md
        - SPEC-OAUTH2-SOCIAL-LOGIN.md
      tablas_nuevas:
        - auth.groups
        - auth.group_implied
        - auth.user_groups
        - auth.models
        - auth.model_access
        - auth.record_rules
        - auth.rule_groups
        - auth.model_fields
        - auth.field_permissions
        - auth.api_keys
        - auth.trusted_devices
        - auth.verification_codes
        - auth.mfa_audit_log
        - auth.oauth_providers
        - auth.oauth_user_links
        - auth.oauth_states
      total_tablas: 16
      funciones_nuevas:
        - auth.get_user_effective_groups()
        - auth.check_model_access()
        - auth.cleanup_expired_oauth_states()
        - auth.cleanup_expired_verification_codes()
        - auth.cleanup_expired_trusted_devices()
        - auth.cleanup_expired_api_keys()
      vistas_nuevas:
        - auth.users_oauth_summary
        - auth.user_model_access_view
      columnas_extendidas_users:
        - mfa_enabled
        - mfa_method
        - mfa_secret
        - backup_codes
        - backup_codes_count
        - mfa_setup_at
        - last_2fa_verification
        - oauth_only
        - primary_oauth_provider_id

    - archivo: 02-core.sql
      estado: existente
      descripcion: "Schema core: partners, addresses, tags"

    - archivo: 03-analytics.sql
      estado: existente
      descripcion: "Schema analytics"

    - archivo: 04-financial.sql
      estado: existente
      descripcion: "Schema financial: accounts, journals, moves"

    - archivo: 05-inventory.sql
      estado: existente
      descripcion: "Schema inventory: products, warehouses, stock_moves"

    - archivo: 06-purchase.sql
      estado: existente
      descripcion: "Schema purchase: purchase_orders"

    - archivo: 07-sales.sql
      estado: existente
      descripcion: "Schema sales: sale_orders"

    - archivo: 08-projects.sql
      estado: existente
      descripcion: "Schema projects"

    - archivo: 09-system.sql
      estado: existente
      descripcion: "Schema system"

    - archivo: 10-billing.sql
      estado: existente
      descripcion: "Schema billing"

    - archivo: 11-crm.sql
      estado: existente
      descripcion: "Schema CRM"

    - archivo: 12-hr.sql
      estado: existente
      descripcion: "Schema HR"

  metricas_ddl:
    archivos_existentes: 13
    archivos_nuevos: 1
    tablas_nuevas: 16
    funciones_nuevas: 6
    vistas_nuevas: 2
    columnas_extendidas: 9

    - archivo: 05-inventory-extensions.sql
      estado: NUEVO
      fecha: 2025-12-08
      descripcion: "Extensiones de inventario: SVL, Lotes/Series, Conteos Cíclicos"
      specs_relacionadas:
        - SPEC-VALORACION-INVENTARIO.md
        - SPEC-TRAZABILIDAD-LOTES-SERIES.md
        - SPEC-INVENTARIOS-CICLICOS.md
      tablas_nuevas:
        - inventory.stock_valuation_layers
        - inventory.category_stock_accounts
        - inventory.valuation_settings
        - inventory.lots
        - inventory.move_line_consume_rel
        - inventory.removal_strategies
        - inventory.inventory_count_sessions
        - inventory.inventory_count_lines
        - inventory.abc_classification_rules
        - inventory.product_abc_classification
      total_tablas: 10
      funciones_nuevas:
        - inventory.run_fifo()
        - inventory.calculate_abc_classification()
        - inventory.get_pending_counts()
        - inventory.mark_quants_outdated()
        - inventory.compute_lot_expiration_dates()
        - inventory.refresh_product_valuation_summary()
        - inventory.update_session_stats()
      total_funciones: 7
      vistas_nuevas:
        - inventory.product_valuation_summary (materialized)
        - inventory.expiring_lots_view
        - inventory.location_count_summary_view
      total_vistas: 3
      columnas_extendidas:
        products: 10 columnas (tracking, expiration, lot_properties)
        product_categories: 3 columnas (cost_method, valuation_method, removal_strategy)
        quants: 8 columnas (lot, inventory_quantity, in_date, etc)
        locations: 4 columnas (cyclic_inventory, abc_classification)
        stock_move_lines: 3 columnas (lot_id, lot_name, tracking)
        stock_moves: 2 columnas (is_inventory, inventory_session_id)

  metricas_ddl_actualizadas:
    archivos_existentes: 13
    archivos_nuevos: 2
    tablas_nuevas_total: 26
    funciones_nuevas_total: 13
    vistas_nuevas_total: 5
    columnas_extendidas_total: 39
