387 lines
10 KiB
YAML
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"
|