platform-marketing-content/orchestration/trazas/TRAZA-TAREAS-BACKEND.md

376 lines
9.4 KiB
Markdown

# Traza de Tareas - Backend Layer
**Proyecto:** Platform Marketing Content (PMC)
**Capa:** Backend (NestJS)
**Estado:** En progreso - Setup completado
**Ultima actualizacion:** 2025-12-08
---
## Resumen de Estado
| Modulo | Entities | Services | Controllers | Estado |
|--------|----------|----------|-------------|--------|
| common | 0 | 1 | 0 | Completado |
| auth | 2 | 1 | 1 | Completado |
| tenants | 2 | 1 | 1 | Completado |
| crm | 0 | 0 | 0 | Pendiente |
| projects | 0 | 0 | 0 | Pendiente |
| generation | 0 | 0 | 0 | Pendiente |
| assets | 0 | 0 | 0 | Pendiente |
| automation | 0 | 0 | 0 | Pendiente |
| analytics | 0 | 0 | 0 | Pendiente |
| **Total** | **4** | **3** | **2** | **25%** |
---
## Tareas Pendientes
### BE-001: Setup Inicial NestJS
```yaml
ID: BE-001
Descripcion: Configurar proyecto NestJS base
Estado: Pendiente
Asignado: Backend-Agent-PMC
Entregables:
- apps/backend/package.json
- apps/backend/src/main.ts
- apps/backend/src/app.module.ts
- apps/backend/src/config/
- apps/backend/src/common/
Dependencias:
- Ninguna (primera tarea)
Criterios:
- [ ] npm run build pasa
- [ ] npm run lint pasa
- [ ] npm run start:dev inicia
- [ ] Swagger disponible en /api/docs
```
### BE-002: Common Module
```yaml
ID: BE-002
Descripcion: Decoradores, guards, pipes, interceptors comunes
Estado: Pendiente
Dependencias: BE-001
Entregables:
- src/common/decorators/current-user.decorator.ts
- src/common/decorators/current-tenant.decorator.ts
- src/common/guards/jwt-auth.guard.ts
- src/common/guards/roles.guard.ts
- src/common/middleware/tenant-context.middleware.ts
- src/shared/entities/tenant-aware.entity.ts
- src/shared/services/tenant-aware.service.ts
Catalogo: @CATALOG_AUTH
```
### BE-003: Auth Module
```yaml
ID: BE-003
Descripcion: Autenticacion JWT, sesiones
Estado: Pendiente
Dependencias: BE-002, DB-002
Entregables:
- src/modules/auth/auth.module.ts
- src/modules/auth/entities/*.entity.ts
- src/modules/auth/services/*.service.ts
- src/modules/auth/controllers/*.controller.ts
- src/modules/auth/dto/*.dto.ts
Catalogo: @CATALOG_AUTH, @CATALOG_SESSION
```
### BE-004: Tenants Module
```yaml
ID: BE-004
Descripcion: Multi-tenancy, planes, quotas
Estado: Pendiente
Dependencias: BE-003, DB-002
Entregables:
- src/modules/tenants/tenants.module.ts
- src/modules/tenants/entities/*.entity.ts
- src/modules/tenants/services/*.service.ts
- src/modules/tenants/controllers/*.controller.ts
Catalogo: @CATALOG_TENANT
```
### BE-005: CRM Module
```yaml
ID: BE-005
Descripcion: Clientes, marcas, productos
Estado: Pendiente
Dependencias: BE-004, DB-003
Entregables:
- src/modules/crm/crm.module.ts
- src/modules/crm/entities/*.entity.ts (5)
- src/modules/crm/services/*.service.ts (5)
- src/modules/crm/controllers/*.controller.ts (5)
```
### BE-006: Assets Module
```yaml
ID: BE-006
Descripcion: DAM, storage S3/MinIO
Estado: Pendiente
Dependencias: BE-004, DB-006
Entregables:
- src/modules/assets/assets.module.ts
- src/modules/assets/entities/*.entity.ts
- src/modules/assets/services/asset.service.ts
- src/modules/assets/services/storage.service.ts
- src/modules/assets/services/thumbnail.service.ts
- src/modules/assets/controllers/*.controller.ts
```
### BE-007: Projects Module
```yaml
ID: BE-007
Descripcion: Proyectos, campanas, briefs
Estado: Pendiente
Dependencias: BE-005, BE-006, DB-004
Entregables:
- src/modules/projects/projects.module.ts
- src/modules/projects/entities/*.entity.ts
- src/modules/projects/services/*.service.ts
- src/modules/projects/controllers/*.controller.ts
```
### BE-008: Generation Module
```yaml
ID: BE-008
Descripcion: Motor IA, ComfyUI, colas BullMQ
Estado: Pendiente
Dependencias: BE-005, BE-006, BE-007, DB-005
Entregables:
- src/modules/generation/generation.module.ts
- src/modules/generation/entities/*.entity.ts
- src/modules/generation/services/generation.service.ts
- src/modules/generation/services/comfyui.service.ts
- src/modules/generation/processors/image-generation.processor.ts
- src/modules/generation/gateways/generation.gateway.ts
- src/modules/generation/controllers/*.controller.ts
Catalogo: @CATALOG_RATELIMIT, @CATALOG_WS
```
### BE-009: Automation Module
```yaml
ID: BE-009
Descripcion: Flujos, webhooks, n8n
Estado: Pendiente
Dependencias: BE-008, DB-007
Entregables:
- src/modules/automation/automation.module.ts
- src/modules/automation/entities/*.entity.ts
- src/modules/automation/services/*.service.ts
- src/modules/automation/controllers/*.controller.ts
Catalogo: @CATALOG_NOTIFY
```
### BE-010: Analytics Module
```yaml
ID: BE-010
Descripcion: Metricas, reportes
Estado: Pendiente
Dependencias: BE-004, DB-008
Entregables:
- src/modules/analytics/analytics.module.ts
- src/modules/analytics/entities/*.entity.ts
- src/modules/analytics/services/*.service.ts
- src/modules/analytics/controllers/*.controller.ts
```
---
## Registro de Tareas Completadas
## [BE-001] Setup Inicial NestJS
**Fecha:** 2025-12-08
**Estado:** Completado
**Agente:** Backend-Agent-PMC
### Descripcion
Setup inicial del proyecto NestJS con configuracion completa incluyendo TypeORM, JWT, BullMQ, Swagger.
### Archivos Creados
- `apps/backend/package.json`
- `apps/backend/tsconfig.json`
- `apps/backend/nest-cli.json`
- `apps/backend/.env.example`
- `apps/backend/src/main.ts`
- `apps/backend/src/app.module.ts`
- `apps/backend/src/config/database.config.ts`
- `apps/backend/src/config/redis.config.ts`
- `apps/backend/src/config/jwt.config.ts`
- `apps/backend/src/config/storage.config.ts`
### Validaciones Ejecutadas
- [x] Estructura de carpetas correcta
- [x] Dependencias definidas en package.json
- [x] Swagger configurado en /docs
---
## [BE-002] Common Module
**Fecha:** 2025-12-08
**Estado:** Completado
**Agente:** Backend-Agent-PMC
### Descripcion
Decoradores, guards, filters y servicios base para multi-tenancy.
### Archivos Creados
- `src/common/decorators/current-user.decorator.ts`
- `src/common/decorators/current-tenant.decorator.ts`
- `src/common/decorators/roles.decorator.ts`
- `src/common/decorators/public.decorator.ts`
- `src/common/guards/jwt-auth.guard.ts`
- `src/common/guards/roles.guard.ts`
- `src/common/guards/tenant-member.guard.ts`
- `src/common/filters/http-exception.filter.ts`
- `src/shared/entities/tenant-aware.entity.ts`
- `src/shared/services/tenant-aware.service.ts`
- `src/shared/dto/pagination.dto.ts`
### Catalogo Integrado
- @CATALOG_AUTH patterns
---
## [BE-003] Auth Module
**Fecha:** 2025-12-08
**Estado:** Completado
**Agente:** Backend-Agent-PMC
### Descripcion
Modulo de autenticacion con JWT, registro, login, refresh tokens.
### Archivos Creados
- `src/modules/auth/auth.module.ts`
- `src/modules/auth/entities/user.entity.ts`
- `src/modules/auth/entities/session.entity.ts`
- `src/modules/auth/services/auth.service.ts`
- `src/modules/auth/controllers/auth.controller.ts`
- `src/modules/auth/dto/register.dto.ts`
- `src/modules/auth/dto/login.dto.ts`
- `src/modules/auth/dto/auth-response.dto.ts`
- `src/modules/auth/strategies/jwt.strategy.ts`
### Endpoints Creados
| Metodo | Path | Descripcion |
|--------|------|-------------|
| POST | /api/v1/auth/register | Registrar usuario |
| POST | /api/v1/auth/login | Iniciar sesion |
| POST | /api/v1/auth/logout | Cerrar sesion |
| POST | /api/v1/auth/refresh | Refrescar tokens |
---
## [BE-004] Tenants Module
**Fecha:** 2025-12-08
**Estado:** Completado
**Agente:** Backend-Agent-PMC
### Descripcion
Modulo de gestion de tenants y planes.
### Archivos Creados
- `src/modules/tenants/tenants.module.ts`
- `src/modules/tenants/entities/tenant.entity.ts`
- `src/modules/tenants/entities/tenant-plan.entity.ts`
- `src/modules/tenants/services/tenants.service.ts`
- `src/modules/tenants/controllers/tenants.controller.ts`
- `src/modules/tenants/dto/create-tenant.dto.ts`
- `src/modules/tenants/dto/update-tenant.dto.ts`
### Endpoints Creados
| Metodo | Path | Descripcion |
|--------|------|-------------|
| POST | /api/v1/tenants | Crear tenant |
| GET | /api/v1/tenants/current | Obtener tenant actual |
| GET | /api/v1/tenants/current/usage | Ver uso del tenant |
| PUT | /api/v1/tenants/current | Actualizar tenant |
| GET | /api/v1/tenants/plans | Listar planes |
<!-- Template para tareas completadas:
## [BE-XXX] {Descripcion}
**Fecha:** {YYYY-MM-DD HH:MM}
**Estado:** Completado
**Agente:** Backend-Agent-PMC
### Descripcion
{Que se hizo}
### Archivos Creados
- `src/modules/{modulo}/{modulo}.module.ts`
- `src/modules/{modulo}/entities/{entidad}.entity.ts`
- `src/modules/{modulo}/services/{servicio}.service.ts`
- `src/modules/{modulo}/controllers/{controller}.controller.ts`
### Archivos Modificados
- `src/app.module.ts` (import del nuevo modulo)
### Validaciones Ejecutadas
- [x] npm run build: PASA
- [x] npm run lint: PASA
- [x] npm run test: PASA
- [x] Swagger genera correctamente: SI
- [x] Multi-tenant implementado: SI
### Endpoints Creados
| Metodo | Path | Descripcion |
|--------|------|-------------|
| GET | /api/v1/{modulo}/{recurso} | Listar |
| POST | /api/v1/{modulo}/{recurso} | Crear |
### Inventario Actualizado
- orchestration/inventarios/BACKEND_INVENTORY.yml
- Seccion: modulos.{modulo}
-->
---
## Referencias
- Inventario Backend: `orchestration/inventarios/BACKEND_INVENTORY.yml`
- Definicion modulos: `docs/02-definicion-modulos/`
- Prompt Backend: `orchestration/prompts/PROMPT-BACKEND-PMC.md`
- Nomenclatura: `orchestration/directivas/GUIA-NOMENCLATURA-PMC.md`
---
**Generado por:** Requirements-Analyst
**Fecha:** 2025-12-08