Moved loose tasks to date folders: - 2026-01-24/: TASK-SAAS-018, TASK-SAAS-020 - 2026-01-25/: TASK-SAAS-019 Aligns with workspace-v2 orchestration standards. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
279 lines
8.8 KiB
YAML
279 lines
8.8 KiB
YAML
# ===============================================================================
|
|
# METADATA DE TAREA - SAAS-020 Commissions
|
|
# ===============================================================================
|
|
|
|
version: "1.0.0"
|
|
task_id: "TASK-2026-01-24-SAAS-020-COMMISSIONS"
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# IDENTIFICACION
|
|
# -------------------------------------------------------------------------------
|
|
|
|
identificacion:
|
|
titulo: "SAAS-020 Commissions - Implementacion Completa"
|
|
descripcion: |
|
|
Implementacion del sistema de comisiones para vendedores y afiliados.
|
|
Soporta multiples esquemas de comision (porcentaje, fijo, escalonado),
|
|
periodos de pago configurables, y reportes de earnings.
|
|
|
|
- 43 archivos creados
|
|
- 13 Story Points
|
|
- Base para modulo MLM (SAAS-021)
|
|
tipo: "feature"
|
|
prioridad: "P2"
|
|
tags:
|
|
- "commissions"
|
|
- "sales"
|
|
- "earnings"
|
|
- "schemes"
|
|
- "periods"
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# RESPONSABILIDAD
|
|
# -------------------------------------------------------------------------------
|
|
|
|
responsabilidad:
|
|
agente_responsable: "PERFIL-FULLSTACK"
|
|
agente_modelo: "Claude Opus 4.5"
|
|
delegado_de: null
|
|
delegado_a: []
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# ALCANCE
|
|
# -------------------------------------------------------------------------------
|
|
|
|
alcance:
|
|
nivel: "proyecto"
|
|
proyecto: "template-saas"
|
|
modulo: "commissions"
|
|
capas_afectadas:
|
|
- "database"
|
|
- "backend"
|
|
- "frontend"
|
|
- "docs"
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# TEMPORALIDAD
|
|
# -------------------------------------------------------------------------------
|
|
|
|
temporalidad:
|
|
fecha_inicio: "2026-01-24"
|
|
fecha_fin: "2026-01-24"
|
|
duracion_estimada: "5h"
|
|
duracion_real: "5h"
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# ESTADO
|
|
# -------------------------------------------------------------------------------
|
|
|
|
estado:
|
|
actual: "completada"
|
|
fase_actual: "D"
|
|
porcentaje: 100
|
|
motivo_bloqueo: null
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# FASES CAPVED
|
|
# -------------------------------------------------------------------------------
|
|
|
|
fases:
|
|
contexto:
|
|
estado: "completada"
|
|
archivo: null
|
|
completado_en: "2026-01-24"
|
|
nota: "Basado en especificacion SAAS-020"
|
|
|
|
analisis:
|
|
estado: "completada"
|
|
archivo: null
|
|
completado_en: "2026-01-24"
|
|
nota: "Dependencia de SAAS-018 Sales verificada"
|
|
|
|
plan:
|
|
estado: "completada"
|
|
archivo: null
|
|
completado_en: "2026-01-24"
|
|
nota: "Plan de implementacion aprobado"
|
|
|
|
validacion:
|
|
estado: "completada"
|
|
archivo: null
|
|
completado_en: "2026-01-24"
|
|
nota: "Gate aprobado antes de ejecucion"
|
|
|
|
ejecucion:
|
|
estado: "completada"
|
|
archivo: null
|
|
completado_en: "2026-01-24"
|
|
nota: "DDL, Backend, Frontend implementados"
|
|
|
|
documentacion:
|
|
estado: "completada"
|
|
archivo: null
|
|
completado_en: "2026-01-24"
|
|
nota: "Inventarios y docs actualizados"
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# ARTEFACTOS
|
|
# -------------------------------------------------------------------------------
|
|
|
|
artefactos:
|
|
archivos_creados:
|
|
# DDL
|
|
- ruta: "database/ddl/schemas/commissions/00-schema.sql"
|
|
tipo: "ddl"
|
|
- ruta: "database/ddl/schemas/commissions/01-enums.sql"
|
|
tipo: "ddl"
|
|
- ruta: "database/ddl/schemas/commissions/02-tables.sql"
|
|
tipo: "ddl"
|
|
- ruta: "database/ddl/schemas/commissions/03-functions.sql"
|
|
tipo: "ddl"
|
|
- ruta: "database/ddl/schemas/commissions/04-rls.sql"
|
|
tipo: "ddl"
|
|
- ruta: "database/ddl/schemas/commissions/05-indexes.sql"
|
|
tipo: "ddl"
|
|
# Backend Entities
|
|
- ruta: "backend/src/modules/commissions/entities/commission-scheme.entity.ts"
|
|
tipo: "entity"
|
|
- ruta: "backend/src/modules/commissions/entities/commission-assignment.entity.ts"
|
|
tipo: "entity"
|
|
- ruta: "backend/src/modules/commissions/entities/commission-entry.entity.ts"
|
|
tipo: "entity"
|
|
- ruta: "backend/src/modules/commissions/entities/commission-period.entity.ts"
|
|
tipo: "entity"
|
|
# Backend Services
|
|
- ruta: "backend/src/modules/commissions/services/schemes.service.ts"
|
|
tipo: "service"
|
|
- ruta: "backend/src/modules/commissions/services/assignments.service.ts"
|
|
tipo: "service"
|
|
- ruta: "backend/src/modules/commissions/services/entries.service.ts"
|
|
tipo: "service"
|
|
- ruta: "backend/src/modules/commissions/services/periods.service.ts"
|
|
tipo: "service"
|
|
- ruta: "backend/src/modules/commissions/services/commissions-dashboard.service.ts"
|
|
tipo: "service"
|
|
# Backend Controllers
|
|
- ruta: "backend/src/modules/commissions/controllers/schemes.controller.ts"
|
|
tipo: "controller"
|
|
- ruta: "backend/src/modules/commissions/controllers/assignments.controller.ts"
|
|
tipo: "controller"
|
|
- ruta: "backend/src/modules/commissions/controllers/entries.controller.ts"
|
|
tipo: "controller"
|
|
- ruta: "backend/src/modules/commissions/controllers/periods.controller.ts"
|
|
tipo: "controller"
|
|
- ruta: "backend/src/modules/commissions/controllers/dashboard.controller.ts"
|
|
tipo: "controller"
|
|
# Backend DTOs
|
|
- ruta: "backend/src/modules/commissions/dto/"
|
|
tipo: "dto"
|
|
# Frontend Services
|
|
- ruta: "frontend/src/services/commissions/"
|
|
tipo: "api-service"
|
|
# Frontend Hooks
|
|
- ruta: "frontend/src/hooks/commissions/"
|
|
tipo: "hook"
|
|
# Frontend Pages
|
|
- ruta: "frontend/src/pages/commissions/"
|
|
tipo: "page"
|
|
|
|
archivos_modificados:
|
|
- ruta: "backend/src/app.module.ts"
|
|
cambio: "Agregado CommissionsModule a imports"
|
|
- ruta: "database/ddl/02-enums.sql"
|
|
cambio: "Agregados commissions enums"
|
|
- ruta: "docs/01-modulos/SAAS-020-COMMISSIONS.md"
|
|
cambio: "Actualizado status a Completed"
|
|
- ruta: "orchestration/inventarios/MASTER_INVENTORY.yml"
|
|
cambio: "SAAS-020 status: completado"
|
|
- ruta: "orchestration/inventarios/BACKEND_INVENTORY.yml"
|
|
cambio: "Agregado commissions module"
|
|
- ruta: "orchestration/inventarios/FRONTEND_INVENTORY.yml"
|
|
cambio: "Agregado commissions pages y hooks"
|
|
- ruta: "orchestration/inventarios/DATABASE_INVENTORY.yml"
|
|
cambio: "Agregado commissions schema"
|
|
|
|
archivos_eliminados: []
|
|
|
|
commits:
|
|
- hash: "b730a181"
|
|
mensaje: "[SAAS-018/020] feat: Update template-saas submodule with Sales + Commissions modules"
|
|
fecha: "2026-01-24"
|
|
repo: "workspace-v2"
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# RELACIONES
|
|
# -------------------------------------------------------------------------------
|
|
|
|
relaciones:
|
|
tarea_padre: null
|
|
subtareas: []
|
|
tareas_relacionadas:
|
|
- "TASK-2026-01-24-SAAS-018-SALES-FOUNDATION"
|
|
bloquea:
|
|
- "SAAS-021 MLM (requiere commissions)"
|
|
bloqueada_por:
|
|
- "SAAS-018 Sales (debe existir)"
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# VALIDACIONES
|
|
# -------------------------------------------------------------------------------
|
|
|
|
validaciones:
|
|
build:
|
|
estado: "pasa"
|
|
output: "Sin errores de compilacion"
|
|
lint:
|
|
estado: "pasa"
|
|
errores: 0
|
|
warnings: 0
|
|
tests:
|
|
estado: "pendiente"
|
|
nota: "Tests unitarios pendientes de implementar"
|
|
typecheck:
|
|
estado: "pasa"
|
|
errores: 0
|
|
documentacion_completa: true
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# REFERENCIAS
|
|
# -------------------------------------------------------------------------------
|
|
|
|
referencias:
|
|
documentos_consultados:
|
|
- "docs/01-modulos/SAAS-020-COMMISSIONS.md"
|
|
- "docs/01-modulos/SAAS-018-SALES.md"
|
|
- "@SIMCO-TAREA"
|
|
- "@SIMCO-CREAR"
|
|
- "@SIMCO-BACKEND"
|
|
- "@SIMCO-FRONTEND"
|
|
- "@SIMCO-DDL"
|
|
|
|
directivas_aplicadas:
|
|
- "@FULL"
|
|
- "@CREATE-SAFE"
|
|
- "@TRIGGER-COHERENCIA"
|
|
- "@TRIGGER-INVENTARIOS"
|
|
|
|
epica: "SAAS-CORE"
|
|
user_story: null
|
|
|
|
# -------------------------------------------------------------------------------
|
|
# NOTAS Y LECCIONES APRENDIDAS
|
|
# -------------------------------------------------------------------------------
|
|
|
|
notas: |
|
|
Implementacion completa de SAAS-020 Commissions siguiendo los patrones
|
|
establecidos en SAAS-018 Sales. El modulo depende de Sales para las
|
|
transacciones origen de comisiones.
|
|
|
|
Pendiente: Tests unitarios (0% cobertura actual).
|
|
|
|
lecciones_aprendidas:
|
|
- "Seguir la misma estructura que SAAS-018 facilita consistencia"
|
|
- "La dependencia con Sales debe documentarse claramente"
|
|
- "Los tests unitarios deben priorizarse en siguiente sprint"
|
|
|
|
# ===============================================================================
|
|
# FIN DE METADATA
|
|
# ===============================================================================
|