platform-marketing-content/orchestration/inventarios/DEPENDENCY_GRAPH.yml

387 lines
10 KiB
YAML

# DEPENDENCY_GRAPH.yml - Platform Marketing Content
# Grafo de dependencias entre modulos y componentes
# Version: 1.0.0
# Fecha: 2025-12-08
version: "1.0.0"
proyecto: "Platform Marketing Content"
fecha_actualizacion: "2025-12-08"
# =============================================================================
# DEPENDENCIAS ENTRE MODULOS
# =============================================================================
modulos:
# -------------------------------------------------------------------------
# AUTH - Modulo base (sin dependencias de otros modulos PMC)
# -------------------------------------------------------------------------
auth:
id: PMC-007
nombre: Auth/Admin
dependencias_internas: []
dependencias_catalogo:
- "@CATALOG_AUTH"
- "@CATALOG_SESSION"
es_dependencia_de:
- crm
- projects
- generation
- assets
- automation
- analytics
# -------------------------------------------------------------------------
# TENANTS - Modulo base para multi-tenancy
# -------------------------------------------------------------------------
tenants:
id: PMC-001
nombre: Tenants
dependencias_internas:
- auth # Para usuarios y roles
dependencias_catalogo:
- "@CATALOG_TENANT"
- "@CATALOG_PAYMENTS"
es_dependencia_de:
- crm
- projects
- generation
- assets
- automation
- analytics
# -------------------------------------------------------------------------
# CRM - Depende de auth y tenants
# -------------------------------------------------------------------------
crm:
id: PMC-002
nombre: CRM
dependencias_internas:
- auth
- tenants
dependencias_catalogo: []
es_dependencia_de:
- projects
- generation
# -------------------------------------------------------------------------
# PROJECTS - Depende de CRM para clientes y marcas
# -------------------------------------------------------------------------
projects:
id: PMC-003
nombre: Projects
dependencias_internas:
- auth
- tenants
- crm # clients, brands para proyectos
- assets # para campaign_assets
dependencias_catalogo: []
es_dependencia_de:
- generation
- automation
# -------------------------------------------------------------------------
# GENERATION - Motor de IA
# -------------------------------------------------------------------------
generation:
id: PMC-004
nombre: Generation
dependencias_internas:
- auth
- tenants
- crm # products, brands para contexto
- projects # campaigns para asociar generaciones
- assets # para guardar resultados
dependencias_catalogo:
- "@CATALOG_RATELIMIT"
- "@CATALOG_WS"
es_dependencia_de:
- automation
# -------------------------------------------------------------------------
# ASSETS - DAM
# -------------------------------------------------------------------------
assets:
id: PMC-006
nombre: Assets
dependencias_internas:
- auth
- tenants
dependencias_catalogo: []
es_dependencia_de:
- projects
- generation
# -------------------------------------------------------------------------
# AUTOMATION - Flujos automatizados
# -------------------------------------------------------------------------
automation:
id: PMC-005
nombre: Automation
dependencias_internas:
- auth
- tenants
- crm # eventos de clientes/productos
- projects # eventos de campanas
- generation # trigger de generaciones
- assets # eventos de assets
dependencias_catalogo:
- "@CATALOG_NOTIFY"
es_dependencia_de: []
# -------------------------------------------------------------------------
# ANALYTICS - Reportes y dashboards
# -------------------------------------------------------------------------
analytics:
id: PMC-008
nombre: Analytics
dependencias_internas:
- auth
- tenants
- crm
- projects
- generation
- assets
dependencias_catalogo: []
es_dependencia_de: []
# =============================================================================
# ORDEN DE IMPLEMENTACION
# =============================================================================
orden_implementacion:
fase_1:
nombre: "Core Foundation"
modulos:
- auth
- tenants
razon: "Base para multi-tenancy y autenticacion"
duracion_estimada: "Sprint 1-2"
fase_2:
nombre: "Business Domain"
modulos:
- crm
- assets
razon: "Entidades de negocio base"
duracion_estimada: "Sprint 3-4"
fase_3:
nombre: "Project Management"
modulos:
- projects
razon: "Depende de CRM y Assets"
duracion_estimada: "Sprint 5"
fase_4:
nombre: "AI Generation"
modulos:
- generation
razon: "Core diferenciador, depende de CRM y Projects"
duracion_estimada: "Sprint 6-7"
fase_5:
nombre: "Advanced Features"
modulos:
- automation
- analytics
razon: "Funcionalidades avanzadas que integran todo"
duracion_estimada: "Sprint 8-9"
# =============================================================================
# DEPENDENCIAS DE BASE DE DATOS
# =============================================================================
database_dependencies:
schemas_orden:
- auth # Primero: tenants, users, roles
- crm # Segundo: clients, brands, products
- projects # Tercero: projects, campaigns
- generation # Cuarto: jobs, workflows
- assets # Quinto: assets, collections
- automation # Sexto: flows, webhooks
- analytics # Septimo: metrics, reports
foreign_keys_criticas:
- from: "auth.users.tenant_id"
to: "auth.tenants.id"
tipo: "mandatory"
- from: "crm.clients.tenant_id"
to: "auth.tenants.id"
tipo: "mandatory"
- from: "crm.brands.client_id"
to: "crm.clients.id"
tipo: "mandatory"
- from: "projects.campaigns.project_id"
to: "projects.projects.id"
tipo: "mandatory"
- from: "generation.jobs.campaign_id"
to: "projects.campaigns.id"
tipo: "optional"
- from: "generation.jobs.product_id"
to: "crm.products.id"
tipo: "optional"
# =============================================================================
# DEPENDENCIAS DE SERVICIOS EXTERNOS
# =============================================================================
external_dependencies:
postgresql:
version: "15+"
requerido_por:
- todos los modulos
criticidad: alta
redis:
version: "7+"
requerido_por:
- auth (sesiones)
- generation (colas BullMQ)
- tenants (cache de limites)
criticidad: alta
s3_minio:
requerido_por:
- assets
- generation (outputs)
criticidad: alta
comfyui:
requerido_por:
- generation (imagenes)
criticidad: alta
openai:
requerido_por:
- generation (texto)
criticidad: media
n8n:
requerido_por:
- automation
criticidad: media
stripe:
requerido_por:
- tenants (billing)
criticidad: baja (Fase 4)
# =============================================================================
# GRAFO VISUAL (Mermaid)
# =============================================================================
diagrama_mermaid: |
graph TD
AUTH[Auth/Admin] --> TENANTS[Tenants]
AUTH --> CRM[CRM]
AUTH --> PROJECTS[Projects]
AUTH --> GENERATION[Generation]
AUTH --> ASSETS[Assets]
AUTH --> AUTOMATION[Automation]
AUTH --> ANALYTICS[Analytics]
TENANTS --> CRM
TENANTS --> PROJECTS
TENANTS --> GENERATION
TENANTS --> ASSETS
TENANTS --> AUTOMATION
TENANTS --> ANALYTICS
CRM --> PROJECTS
CRM --> GENERATION
ASSETS --> PROJECTS
ASSETS --> GENERATION
PROJECTS --> GENERATION
PROJECTS --> AUTOMATION
GENERATION --> AUTOMATION
CRM --> ANALYTICS
PROJECTS --> ANALYTICS
GENERATION --> ANALYTICS
ASSETS --> ANALYTICS
subgraph "Externos"
COMFYUI[ComfyUI]
OPENAI[OpenAI]
N8N[n8n]
STRIPE[Stripe]
end
GENERATION --> COMFYUI
GENERATION --> OPENAI
AUTOMATION --> N8N
TENANTS --> STRIPE
# =============================================================================
# IMPACTO DE CAMBIOS
# =============================================================================
impacto_cambios:
auth:
impacto: CRITICO
afecta: "Todos los modulos"
consideraciones:
- "Cambios en User afectan auditoria en todas las tablas"
- "Cambios en permisos requieren revision de guards"
tenants:
impacto: CRITICO
afecta: "Todos los modulos con tenant_id"
consideraciones:
- "Cambios en limites afectan quotas"
- "Cambios en RLS requieren migracion cuidadosa"
crm:
impacto: ALTO
afecta: "Projects, Generation"
consideraciones:
- "Cambios en Brand afectan generation context"
- "Cambios en Product afectan asociaciones de jobs"
projects:
impacto: MEDIO
afecta: "Generation, Automation"
consideraciones:
- "Cambios en Campaign afectan tracking de jobs"
generation:
impacto: BAJO
afecta: "Automation (triggers)"
consideraciones:
- "Cambios en job status afectan webhooks"
assets:
impacto: MEDIO
afecta: "Projects, Generation"
consideraciones:
- "Cambios en storage path afectan URLs existentes"
automation:
impacto: BAJO
afecta: "Ninguno (hoja del arbol)"
consideraciones:
- "Cambios aislados, no afectan otros modulos"
analytics:
impacto: BAJO
afecta: "Ninguno (hoja del arbol)"
consideraciones:
- "Solo lectura de datos de otros modulos"
# =============================================================================
# METADATOS
# =============================================================================
metadata:
creado_por: Requirements-Analyst
fecha_creacion: "2025-12-08"
ultima_actualizacion: "2025-12-08"