376 lines
9.4 KiB
Markdown
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
|