# =============================================================================
# TRAZABILIDAD: MAI-003 - PRESUPUESTOS Y CONTROL DE COSTOS
# =============================================================================
# Modulo: MAI-003 Presupuestos y Control de Costos
# Fecha: 2025-11-25
# Version: 1.0.0
# Reutilizacion ERP Generico: 0% (100% Especifico)
# =============================================================================

metadata:
  modulo: MAI-003
  nombre: Presupuestos y Control de Costos
  descripcion: Conceptos, APUs, presupuestos, control de costos y analisis de rentabilidad
  fecha_actualizacion: 2025-11-25
  responsable: Architecture-Analyst
  mapeo_generico: null  # 100% especifico de construccion
  porcentaje_reutilizacion: 0

# =============================================================================
# REQUERIMIENTOS FUNCIONALES
# =============================================================================
requerimientos:
  - id: RF-COST-001
    nombre: Catalogo de Conceptos y Precios
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/requerimientos/RF-COST-001-catalogo-conceptos-precios.md
    prioridad: P0
    estado: documentado
    descripcion: Catalogo jerarquico de conceptos de obra con precios unitarios
    especificaciones:
      - id: ET-COST-001
        nombre: Implementacion Catalogo Conceptos
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/especificaciones/ET-COST-001-implementacion-catalogo-conceptos.md
        estado: documentado
    tablas_bd:
      - construction.conceptos
    endpoints_api:
      - GET /api/v1/conceptos
      - POST /api/v1/conceptos
      - GET /api/v1/conceptos/{id}
      - PATCH /api/v1/conceptos/{id}
      - GET /api/v1/conceptos/{id}/children
      - POST /api/v1/conceptos/import
    componentes_frontend:
      - ConceptoTree
      - ConceptoForm
      - ConceptoImport
      - PrecioUnitarioEditor

  - id: RF-COST-002
    nombre: Presupuestos Maestros
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/requerimientos/RF-COST-002-presupuestos-maestros.md
    prioridad: P0
    estado: documentado
    descripcion: Presupuestos por prototipo y por obra completa
    especificaciones:
      - id: ET-COST-002
        nombre: Implementacion Presupuestos
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/especificaciones/ET-COST-002-implementacion-presupuestos.md
        estado: documentado
    tablas_bd:
      - construction.presupuestos
      - construction.presupuesto_partidas
    endpoints_api:
      - GET /api/v1/presupuestos
      - POST /api/v1/presupuestos
      - GET /api/v1/presupuestos/{id}
      - PATCH /api/v1/presupuestos/{id}
      - GET /api/v1/presupuestos/{id}/partidas
      - POST /api/v1/presupuestos/{id}/partidas
      - POST /api/v1/presupuestos/{id}/copy
      - POST /api/v1/presupuestos/{id}/approve
    componentes_frontend:
      - PresupuestoList
      - PresupuestoEditor
      - PartidaGrid
      - PresupuestoCompare
      - PresupuestoApproval

  - id: RF-COST-003
    nombre: Control de Costos Reales
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/requerimientos/RF-COST-003-control-costos-reales.md
    prioridad: P0
    estado: documentado
    descripcion: Registro y seguimiento de costos reales vs presupuestados
    especificaciones:
      - id: ET-COST-003
        nombre: Implementacion Control Costos
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/especificaciones/ET-COST-003-implementacion-control-costos.md
        estado: documentado
    tablas_bd:
      - construction.presupuestos
      - construction.presupuesto_partidas
      - inventory.consumos_obra
    endpoints_api:
      - GET /api/v1/control-costos/{fraccionamiento_id}
      - GET /api/v1/control-costos/{fraccionamiento_id}/comparativo
      - GET /api/v1/control-costos/{fraccionamiento_id}/desviaciones
    componentes_frontend:
      - ControlCostosDashboard
      - ComparativoPresupuestal
      - DesviacionesChart
      - CostoRealCapture

  - id: RF-COST-004
    nombre: Analisis de Rentabilidad
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/requerimientos/RF-COST-004-analisis-rentabilidad.md
    prioridad: P1
    estado: documentado
    descripcion: Reportes de rentabilidad por proyecto, prototipo y concepto
    especificaciones:
      - id: ET-COST-004
        nombre: Implementacion Analisis Rentabilidad
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/especificaciones/ET-COST-004-implementacion-analisis-rentabilidad.md
        estado: documentado
    tablas_bd:
      - construction.presupuestos
      - construction.presupuesto_partidas
    endpoints_api:
      - GET /api/v1/rentabilidad/{fraccionamiento_id}
      - GET /api/v1/rentabilidad/{fraccionamiento_id}/por-prototipo
      - GET /api/v1/rentabilidad/{fraccionamiento_id}/por-concepto
    componentes_frontend:
      - RentabilidadDashboard
      - RentabilidadPorPrototipo
      - MargenChart

# =============================================================================
# HISTORIAS DE USUARIO
# =============================================================================
historias_usuario:
  - id: US-COST-001
    nombre: Catalogo de Conceptos
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/historias-usuario/US-COST-001-catalogo-conceptos.md
    requerimientos: [RF-COST-001]

  - id: US-COST-002
    nombre: Precios Compuestos
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/historias-usuario/US-COST-002-precios-compuestos.md
    requerimientos: [RF-COST-001]

  - id: US-COST-003
    nombre: Actualizacion de Precios
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/historias-usuario/US-COST-003-actualizacion-precios.md
    requerimientos: [RF-COST-001]

  - id: US-COST-004
    nombre: Presupuesto de Obra
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/historias-usuario/US-COST-004-presupuesto-obra.md
    requerimientos: [RF-COST-002]

  - id: US-COST-005
    nombre: Presupuesto por Prototipo
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/historias-usuario/US-COST-005-presupuesto-prototipo.md
    requerimientos: [RF-COST-002]

  - id: US-COST-006
    nombre: Dashboard Control de Costos
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/historias-usuario/US-COST-006-dashboard-control-costos.md
    requerimientos: [RF-COST-003]

  - id: US-COST-007
    nombre: Analisis de Desviaciones
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/historias-usuario/US-COST-007-analisis-desviaciones.md
    requerimientos: [RF-COST-003]

  - id: US-COST-008
    nombre: Analisis de Rentabilidad
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/historias-usuario/US-COST-008-analisis-rentabilidad.md
    requerimientos: [RF-COST-004]

# =============================================================================
# ARCHIVOS SQL/RLS
# =============================================================================
archivos_implementacion:
  - tipo: rls_policies
    archivo: 01-fase-alcance-inicial/MAI-003-presupuestos-costos/implementacion/ET-COST-001-002-rls-policies.sql

# =============================================================================
# DEPENDENCIAS
# =============================================================================
dependencias:
  modulos_requeridos:
    - MAI-001  # Autenticacion
    - MAI-002  # Proyectos y prototipos
  modulos_dependientes:
    - MAI-005  # Avances usan conceptos
    - MAI-008  # Estimaciones usan conceptos
    - MAI-012  # Contratos usan conceptos

# =============================================================================
# METRICAS DE COBERTURA
# =============================================================================
metricas:
  total_rf: 4
  total_et: 4
  total_us: 8
  total_tablas: 3
  cobertura_documentacion: 100%
  cobertura_implementacion: 0%

# =============================================================================
# FIN DEL ARCHIVO
# =============================================================================
