374 lines
8.6 KiB
YAML
374 lines
8.6 KiB
YAML
# BACKEND_INVENTORY.yml - Platform Marketing Content
|
|
# Inventario de backend NestJS
|
|
# Version: 1.0.0
|
|
# Fecha: 2025-12-08
|
|
# Estado: Planificacion (sin implementar)
|
|
|
|
version: "1.0.0"
|
|
proyecto: "Platform Marketing Content"
|
|
fecha_actualizacion: "2025-12-08"
|
|
estado: planificado
|
|
|
|
# =============================================================================
|
|
# RESUMEN
|
|
# =============================================================================
|
|
|
|
resumen:
|
|
framework: NestJS v10+
|
|
lenguaje: TypeScript
|
|
orm: TypeORM
|
|
modulos_planificados: 8
|
|
entidades_planificadas: 28
|
|
endpoints_estimados: ~143
|
|
dtos_estimados: ~90
|
|
|
|
# =============================================================================
|
|
# MODULOS
|
|
# =============================================================================
|
|
|
|
modulos:
|
|
auth:
|
|
nombre: AuthModule
|
|
proposito: Autenticacion y sesiones
|
|
dependencias_catalogo:
|
|
- "@CATALOG_AUTH"
|
|
- "@CATALOG_SESSION"
|
|
entities:
|
|
- User
|
|
- Role
|
|
- UserSession
|
|
- Invitation
|
|
- AuditLog
|
|
services:
|
|
- AuthService
|
|
- SessionService
|
|
- PasswordService
|
|
- InvitationService
|
|
controllers:
|
|
- AuthController
|
|
- UsersController
|
|
- InvitationsController
|
|
guards:
|
|
- JwtAuthGuard
|
|
- RolesGuard
|
|
- TenantMemberGuard
|
|
endpoints_estimados: 20
|
|
estado: planificado
|
|
|
|
tenants:
|
|
nombre: TenantsModule
|
|
proposito: Multi-tenancy y planes
|
|
dependencias_catalogo:
|
|
- "@CATALOG_TENANT"
|
|
entities:
|
|
- Tenant
|
|
- Plan
|
|
- TenantUsage
|
|
services:
|
|
- TenantService
|
|
- PlanService
|
|
- QuotaService
|
|
controllers:
|
|
- TenantsController
|
|
- PlansController
|
|
middleware:
|
|
- TenantContextMiddleware
|
|
decorators:
|
|
- CurrentTenant
|
|
endpoints_estimados: 8
|
|
estado: planificado
|
|
|
|
crm:
|
|
nombre: CrmModule
|
|
proposito: Clientes, marcas, productos
|
|
entities:
|
|
- Client
|
|
- Contact
|
|
- Brand
|
|
- Product
|
|
- Opportunity
|
|
services:
|
|
- ClientService
|
|
- ContactService
|
|
- BrandService
|
|
- ProductService
|
|
- OpportunityService
|
|
controllers:
|
|
- ClientsController
|
|
- ContactsController
|
|
- BrandsController
|
|
- ProductsController
|
|
- OpportunitiesController
|
|
endpoints_estimados: 25
|
|
estado: planificado
|
|
|
|
projects:
|
|
nombre: ProjectsModule
|
|
proposito: Proyectos y campanas
|
|
entities:
|
|
- Project
|
|
- Campaign
|
|
- Brief
|
|
- CampaignAsset
|
|
- Approval
|
|
services:
|
|
- ProjectService
|
|
- CampaignService
|
|
- BriefService
|
|
- ApprovalService
|
|
controllers:
|
|
- ProjectsController
|
|
- CampaignsController
|
|
- BriefsController
|
|
- ApprovalsController
|
|
endpoints_estimados: 20
|
|
estado: planificado
|
|
|
|
generation:
|
|
nombre: GenerationModule
|
|
proposito: Motor de generacion IA
|
|
dependencias_catalogo:
|
|
- "@CATALOG_RATELIMIT"
|
|
- "@CATALOG_WS"
|
|
entities:
|
|
- GenerationJob
|
|
- WorkflowTemplate
|
|
- CustomModel
|
|
- TextGeneration
|
|
services:
|
|
- GenerationService
|
|
- ComfyUIService
|
|
- WorkflowService
|
|
- ModelService
|
|
- TextGenerationService
|
|
controllers:
|
|
- GenerationController
|
|
- WorkflowsController
|
|
- ModelsController
|
|
gateways:
|
|
- GenerationGateway (WebSocket)
|
|
processors:
|
|
- ImageGenerationProcessor (Bull)
|
|
- TextGenerationProcessor (Bull)
|
|
queues:
|
|
- generation:image
|
|
- generation:text
|
|
- generation:training
|
|
endpoints_estimados: 18
|
|
estado: planificado
|
|
|
|
assets:
|
|
nombre: AssetsModule
|
|
proposito: DAM (Digital Asset Management)
|
|
entities:
|
|
- Asset
|
|
- AssetVersion
|
|
- Collection
|
|
- CollectionAsset
|
|
- AssetComment
|
|
- Download
|
|
services:
|
|
- AssetService
|
|
- CollectionService
|
|
- StorageService
|
|
- ThumbnailService
|
|
controllers:
|
|
- AssetsController
|
|
- CollectionsController
|
|
- DownloadsController
|
|
endpoints_estimados: 25
|
|
estado: planificado
|
|
|
|
automation:
|
|
nombre: AutomationModule
|
|
proposito: Flujos y webhooks
|
|
dependencias_catalogo:
|
|
- "@CATALOG_NOTIFY"
|
|
entities:
|
|
- AutomationFlow
|
|
- AutomationRun
|
|
- WebhookEndpoint
|
|
- EventLog
|
|
services:
|
|
- AutomationService
|
|
- WebhookService
|
|
- EventService
|
|
- N8nIntegrationService
|
|
controllers:
|
|
- AutomationController
|
|
- WebhooksController
|
|
endpoints_estimados: 15
|
|
estado: planificado
|
|
|
|
analytics:
|
|
nombre: AnalyticsModule
|
|
proposito: Dashboards y reportes
|
|
entities:
|
|
- Metric
|
|
- Report
|
|
- SavedView
|
|
services:
|
|
- AnalyticsService
|
|
- MetricsService
|
|
- ReportService
|
|
controllers:
|
|
- AnalyticsController
|
|
- ReportsController
|
|
endpoints_estimados: 12
|
|
estado: planificado
|
|
|
|
# =============================================================================
|
|
# SHARED/COMMON
|
|
# =============================================================================
|
|
|
|
shared:
|
|
decorators:
|
|
- CurrentUser
|
|
- CurrentTenant
|
|
- Roles
|
|
- Public
|
|
guards:
|
|
- JwtAuthGuard
|
|
- RolesGuard
|
|
- TenantMemberGuard
|
|
- ThrottlerGuard
|
|
interceptors:
|
|
- TransformInterceptor
|
|
- LoggingInterceptor
|
|
- TimeoutInterceptor
|
|
filters:
|
|
- HttpExceptionFilter
|
|
- ValidationExceptionFilter
|
|
pipes:
|
|
- ValidationPipe
|
|
- ParseUUIDPipe
|
|
middleware:
|
|
- TenantContextMiddleware
|
|
- LoggerMiddleware
|
|
|
|
# =============================================================================
|
|
# INTEGRACIONES EXTERNAS
|
|
# =============================================================================
|
|
|
|
integraciones:
|
|
comfyui:
|
|
tipo: HTTP API
|
|
proposito: Generacion de imagenes
|
|
servicio: ComfyUIService
|
|
config_requerida:
|
|
- COMFYUI_URL
|
|
- COMFYUI_API_KEY
|
|
|
|
openai:
|
|
tipo: HTTP API
|
|
proposito: Generacion de texto
|
|
servicio: TextGenerationService
|
|
config_requerida:
|
|
- OPENAI_API_KEY
|
|
|
|
n8n:
|
|
tipo: Webhook
|
|
proposito: Automatizacion de flujos
|
|
servicio: N8nIntegrationService
|
|
config_requerida:
|
|
- N8N_WEBHOOK_URL
|
|
- N8N_API_KEY
|
|
|
|
stripe:
|
|
tipo: HTTP API + Webhooks
|
|
proposito: Pagos y suscripciones (Fase 4)
|
|
servicio: StripeService
|
|
config_requerida:
|
|
- STRIPE_SECRET_KEY
|
|
- STRIPE_WEBHOOK_SECRET
|
|
|
|
s3_minio:
|
|
tipo: S3 API
|
|
proposito: Storage de assets
|
|
servicio: StorageService
|
|
config_requerida:
|
|
- S3_ENDPOINT
|
|
- S3_ACCESS_KEY
|
|
- S3_SECRET_KEY
|
|
- S3_BUCKET
|
|
|
|
# =============================================================================
|
|
# COLAS (BullMQ)
|
|
# =============================================================================
|
|
|
|
queues:
|
|
"generation:image":
|
|
processor: ImageGenerationProcessor
|
|
concurrency: 2
|
|
prioridad: true
|
|
|
|
"generation:text":
|
|
processor: TextGenerationProcessor
|
|
concurrency: 10
|
|
|
|
"generation:training":
|
|
processor: TrainingProcessor
|
|
concurrency: 1
|
|
limiter:
|
|
max: 5
|
|
duration: 86400000
|
|
|
|
"assets:processing":
|
|
processor: AssetProcessor
|
|
concurrency: 5
|
|
|
|
"notifications:email":
|
|
processor: EmailProcessor
|
|
concurrency: 5
|
|
|
|
# =============================================================================
|
|
# ESTRUCTURA DE CARPETAS (Planificada)
|
|
# =============================================================================
|
|
|
|
estructura:
|
|
path: apps/backend/src
|
|
carpetas:
|
|
- common/
|
|
- config/
|
|
- modules/
|
|
- shared/
|
|
- main.ts
|
|
- app.module.ts
|
|
|
|
modulo_template: |
|
|
modules/{nombre}/
|
|
├── {nombre}.module.ts
|
|
├── controllers/
|
|
│ └── {nombre}.controller.ts
|
|
├── services/
|
|
│ └── {nombre}.service.ts
|
|
├── entities/
|
|
│ └── {entidad}.entity.ts
|
|
├── dto/
|
|
│ ├── create-{entidad}.dto.ts
|
|
│ └── update-{entidad}.dto.ts
|
|
└── __tests__/
|
|
└── {nombre}.service.spec.ts
|
|
|
|
# =============================================================================
|
|
# REFERENCIAS
|
|
# =============================================================================
|
|
|
|
referencias:
|
|
definicion_modulos: docs/02-definicion-modulos/
|
|
requerimientos: docs/03-requerimientos/
|
|
guia_setup: docs/95-guias-desarrollo/GUIA-SETUP.md
|
|
guia_convenciones: docs/95-guias-desarrollo/GUIA-CONVENCIONES.md
|
|
adr_stack: docs/97-adr/ADR-001-stack-tecnologico.md
|
|
adr_cola: docs/97-adr/ADR-004-cola-tareas.md
|
|
|
|
# =============================================================================
|
|
# METADATOS
|
|
# =============================================================================
|
|
|
|
metadata:
|
|
creado_por: Requirements-Analyst
|
|
fecha_creacion: "2025-12-08"
|
|
ultima_actualizacion: "2025-12-08"
|
|
estado_implementacion: pendiente
|