--- id: "ANALISIS-CATALOGO" title: "Analisis de Componentes del Catalogo" type: "Analysis" status: "Draft" project: "platform_marketing_content" version: "1.0.0" created_date: "2026-01-04" updated_date: "2026-01-04" --- # Analisis de Componentes del Catalogo **Version:** 1.0.0 **Fecha:** 2025-12-08 **Proyecto:** Platform Marketing Content (PMC) --- ## Proposito Este documento analiza los componentes disponibles en el catalogo del workspace (`shared/catalog/`) y determina cuales son reutilizables para el proyecto PMC, identificando adaptaciones necesarias. --- ## Resumen de Componentes Disponibles El catalogo contiene **8 componentes production-ready**: | Componente | Alias | Origen | Aplicabilidad PMC | |------------|-------|--------|-------------------| | Auth | @CATALOG_AUTH | gamilit | **ALTA** - Usar directamente | | Session Management | @CATALOG_SESSION | gamilit | **ALTA** - Usar directamente | | Multi-Tenancy | @CATALOG_TENANT | gamilit | **ALTA** - Usar directamente | | Rate Limiting | @CATALOG_RATELIMIT | gamilit | **ALTA** - Usar directamente | | Notifications | @CATALOG_NOTIFY | gamilit | **ALTA** - Usar directamente | | Feature Flags | @CATALOG_FLAGS | gamilit | **MEDIA** - Para rollouts | | WebSocket | @CATALOG_WS | trading-platform | **MEDIA** - Para updates en tiempo real | | Payments | @CATALOG_PAYMENTS | trading-platform | **ALTA** - Para suscripciones SaaS | --- ## Analisis Detallado por Componente ### 1. @CATALOG_AUTH - Autenticacion y Autorizacion **Ubicacion:** `shared/catalog/auth/` **Funcionalidades incluidas:** - JWT access + refresh tokens - Password hashing con bcrypt - Sistema de roles (RBAC) - Guards y decoradores - Recuperacion de contrasena - Verificacion de email **Mapeo a modulos PMC:** | Componente Catalogo | Modulo PMC | Requerimiento | |---------------------|------------|---------------| | `JwtAuthGuard` | PMC-007-ADMIN | RF-ADM-001 | | `RolesGuard` | PMC-007-ADMIN | RF-ADM-002 | | `AuthService` | PMC-007-ADMIN | RF-ADM-003 a RF-ADM-008 | | `PasswordRecoveryService` | PMC-007-ADMIN | RF-ADM-011 | **Adaptaciones necesarias:** 1. Definir roles especificos: `super_admin`, `tenant_admin`, `creative`, `analyst`, `viewer`, `client_portal` 2. Integrar con sistema de tenants (tenant_id en JWT payload) 3. Ajustar permisos por recurso segun matriz RBAC definida **Estimacion de esfuerzo:** 4-6 horas de adaptacion --- ### 2. @CATALOG_SESSION - Gestion de Sesiones **Ubicacion:** `shared/catalog/session-management/` **Funcionalidades incluidas:** - Maximo N sesiones concurrentes - Auto-cleanup de sesiones expiradas - Tracking de dispositivos - Logout selectivo/global **Mapeo a modulos PMC:** | Componente Catalogo | Modulo PMC | Requerimiento | |---------------------|------------|---------------| | `SessionService` | PMC-007-ADMIN | RF-ADM-009 | | `DeviceTracking` | PMC-007-ADMIN | RF-ADM-010 | **Adaptaciones necesarias:** 1. Configurar limite de sesiones por plan de suscripcion 2. Integrar con audit log **Estimacion de esfuerzo:** 2-3 horas --- ### 3. @CATALOG_TENANT - Multi-Tenancy **Ubicacion:** `shared/catalog/multi-tenancy/` **Funcionalidades incluidas:** - Aislamiento de datos por tenant - Usuarios en multiples tenants - Roles por tenant (owner, admin, member) - Configuracion por tenant - Row Level Security (RLS) **Mapeo a modulos PMC:** | Componente Catalogo | Modulo PMC | Requerimiento | |---------------------|------------|---------------| | `TenantMiddleware` | PMC-001-TENANTS | RF-TEN-001 | | `TenantMemberGuard` | PMC-001-TENANTS | RF-TEN-002 | | `MembershipService` | PMC-001-TENANTS | RF-TEN-003, RF-TEN-004 | | `RLS Policies` | PMC-001-TENANTS | RF-TEN-005 | **Adaptaciones necesarias:** 1. Extender modelo Tenant con campos especificos: `logo_url`, `brand_colors`, `custom_domain` 2. Agregar limites de quotas: `max_brands`, `max_products`, `max_storage_gb`, `generation_credits` 3. Implementar planes de suscripcion con limites diferenciados 4. Crear tablas de quotas y uso **IMPORTANTE:** Este componente es la BASE del sistema. Implementar primero. **Estimacion de esfuerzo:** 8-12 horas de adaptacion --- ### 4. @CATALOG_RATELIMIT - Limitacion de Tasa **Ubicacion:** `shared/catalog/rate-limiting/` **Funcionalidades incluidas:** - Rate limiting por IP/usuario - Configuracion por endpoint - Headers HTTP estandar - Respuestas 429 con Retry-After **Mapeo a modulos PMC:** | Componente Catalogo | Modulo PMC | Requerimiento | |---------------------|------------|---------------| | `ThrottlerGuard` | PMC-004-GENERATION | RF-GEN-023 | | `CustomThrottlerGuard` | PMC-004-GENERATION | RF-GEN-024 | **Adaptaciones necesarias:** 1. Configurar limites por tipo de operacion: - Generacion imagen: 10/hora (basic), 50/hora (pro), unlimited (enterprise) - Generacion texto: 50/hora (basic), 200/hora (pro), unlimited (enterprise) - API calls generales: 1000/hora 2. Usar Redis para storage en produccion 3. Integrar con sistema de creditos/quotas del tenant **Estimacion de esfuerzo:** 3-4 horas --- ### 5. @CATALOG_NOTIFY - Sistema de Notificaciones **Ubicacion:** `shared/catalog/notifications/` **Funcionalidades incluidas:** - Notificaciones in-app - Notificaciones por email (SMTP/SendGrid) - Push notifications (Web Push) - Templates con variables - Preferencias por usuario - Cola asincrona **Mapeo a modulos PMC:** | Componente Catalogo | Modulo PMC | Requerimiento | |---------------------|------------|---------------| | `NotificationService` | PMC-005-AUTOMATION | RF-AUT-013 | | `MailService` | PMC-005-AUTOMATION | RF-AUT-014 | | `NotificationPreferences` | PMC-007-ADMIN | RF-ADM-015 | **Adaptaciones necesarias:** 1. Crear templates especificos: - `job_completed` - Generacion completada - `job_failed` - Error en generacion - `campaign_approved` - Campana aprobada - `campaign_delivered` - Assets listos para descarga - `quota_warning` - 80% de quota usado - `quota_exceeded` - Quota agotada 2. Integrar con sistema de automation (n8n puede disparar notificaciones) **Estimacion de esfuerzo:** 4-6 horas --- ### 6. @CATALOG_PAYMENTS - Integracion de Pagos **Ubicacion:** `shared/catalog/payments/` **Funcionalidades incluidas:** - Stripe Checkout - Suscripciones con ciclos - Billing Portal autoservicio - Webhooks de eventos - Wallet interno - Codigos promocionales **Mapeo a modulos PMC:** | Componente Catalogo | Modulo PMC | Requerimiento | |---------------------|------------|---------------| | `StripeService` | PMC-001-TENANTS | RF-TEN-012 | | `SubscriptionService` | PMC-001-TENANTS | RF-TEN-013, RF-TEN-014 | | `BillingPortal` | PMC-001-TENANTS | RF-TEN-015 | **Adaptaciones necesarias:** 1. Definir planes especificos PMC: - **Starter**: $49/mes - 1 usuario, 100 generaciones/mes - **Professional**: $149/mes - 5 usuarios, 500 generaciones/mes - **Business**: $399/mes - 20 usuarios, 2000 generaciones/mes - **Enterprise**: Custom - Ilimitado 2. Crear productos y precios en Stripe Dashboard 3. Configurar webhook endpoint 4. Integrar creditos de generacion con sistema de quotas **NOTA:** Implementar en Fase 4 (SaaS comercial) **Estimacion de esfuerzo:** 8-12 horas --- ### 7. @CATALOG_FLAGS - Feature Flags **Ubicacion:** `shared/catalog/feature-flags/` **Funcionalidades incluidas:** - Toggle dinamico sin redespliegue - Rollout gradual por porcentaje - Target por usuarios/roles - Periodo de validez **Aplicabilidad PMC:** - Rollout de nuevos workflows de generacion - A/B testing de templates - Habilitacion gradual de features por tenant **Adaptaciones necesarias:** 1. Integrar con tenant context 2. Crear flags iniciales para MVP vs features avanzadas **Estimacion de esfuerzo:** 2-3 horas --- ### 8. @CATALOG_WS - WebSocket **Ubicacion:** `shared/catalog/websocket/` **Funcionalidades incluidas:** - Conexiones WebSocket con Socket.io - Rooms/canales - Autenticacion de socket - Broadcasting **Aplicabilidad PMC:** - Actualizaciones en tiempo real del estado de jobs - Notificaciones push instantaneas - Progreso de generacion en vivo **Mapeo a modulos PMC:** | Componente Catalogo | Modulo PMC | Requerimiento | |---------------------|------------|---------------| | `WebSocketGateway` | PMC-004-GENERATION | RF-GEN-014 (progreso en tiempo real) | **Adaptaciones necesarias:** 1. Crear rooms por tenant y por job 2. Integrar con Bull queue para emitir progreso **Estimacion de esfuerzo:** 4-6 horas --- ## Matriz de Reutilizacion | Modulo PMC | Componentes Catalogo a Usar | |------------|----------------------------| | PMC-001-TENANTS | @CATALOG_TENANT, @CATALOG_PAYMENTS | | PMC-002-CRM | - (implementacion propia) | | PMC-003-PROJECTS | - (implementacion propia) | | PMC-004-GENERATION | @CATALOG_RATELIMIT, @CATALOG_WS | | PMC-005-AUTOMATION | @CATALOG_NOTIFY | | PMC-006-ASSETS | - (implementacion propia) | | PMC-007-ADMIN | @CATALOG_AUTH, @CATALOG_SESSION, @CATALOG_FLAGS | | PMC-008-ANALYTICS | - (implementacion propia) | --- ## Orden de Implementacion Recomendado Basado en dependencias y componentes del catalogo: ``` Fase 1 - Fundamentos (usa catalogo): ├── 1. @CATALOG_TENANT → PMC-001-TENANTS ├── 2. @CATALOG_AUTH + @CATALOG_SESSION → PMC-007-ADMIN └── 3. @CATALOG_RATELIMIT → Middleware global Fase 2 - Modulos Core (implementacion propia): ├── 4. PMC-002-CRM ├── 5. PMC-006-ASSETS └── 6. PMC-003-PROJECTS Fase 3 - Generacion (mezcla): ├── 7. PMC-004-GENERATION ├── 8. @CATALOG_WS → Progreso real-time └── 9. @CATALOG_NOTIFY → PMC-005-AUTOMATION Fase 4 - SaaS (usa catalogo): ├── 10. @CATALOG_PAYMENTS → Suscripciones ├── 11. @CATALOG_FLAGS → Rollouts └── 12. PMC-008-ANALYTICS ``` --- ## Ahorro Estimado | Componente | Desarrollo desde cero | Adaptacion catalogo | Ahorro | |------------|----------------------|---------------------|--------| | Auth + Session | 40h | 8h | 32h | | Multi-Tenancy | 60h | 12h | 48h | | Rate Limiting | 16h | 4h | 12h | | Notificaciones | 32h | 6h | 26h | | Payments | 48h | 12h | 36h | | Feature Flags | 16h | 3h | 13h | | WebSocket | 24h | 6h | 18h | | **TOTAL** | **236h** | **51h** | **185h** | **Ahorro total estimado: ~185 horas de desarrollo** --- ## Referencias - Catalogo principal: `shared/catalog/CATALOG-INDEX.yml` - Documentacion componentes: `shared/catalog/{componente}/README.md` - Guias de implementacion: `shared/catalog/{componente}/IMPLEMENTATION.md` --- **Generado por:** Requirements-Analyst **Fecha:** 2025-12-08