# =============================================================================
# TRAZABILIDAD: MAI-004 - COMPRAS E INVENTARIOS
# =============================================================================
# Modulo: MAI-004 Compras e Inventarios
# Fecha: 2025-11-25
# Version: 1.0.0
# Reutilizacion ERP Generico: 80%
# =============================================================================

metadata:
  modulo: MAI-004
  nombre: Compras e Inventarios
  descripcion: Proveedores, requisiciones, ordenes de compra, almacenes e inventarios
  fecha_actualizacion: 2025-11-25
  responsable: Architecture-Analyst
  mapeo_generico: MGN-005 + MGN-006
  porcentaje_reutilizacion: 80

# =============================================================================
# REQUERIMIENTOS FUNCIONALES
# =============================================================================
requerimientos:
  - id: RF-PURCH-001
    nombre: Catalogo de Proveedores
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/requerimientos/RF-PURCH-001-catalogo-proveedores.md
    prioridad: P0
    estado: documentado
    descripcion: Gestion de proveedores con evaluacion y especialidades
    especificaciones:
      - id: ET-PURCH-001
        nombre: Implementacion Proveedores
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/especificaciones/ET-PURCH-001-implementacion-proveedores.md
        estado: documentado
    tablas_bd:
      - purchase.suppliers  # GENERICO
      - purchase.supplier_construction  # EXTENSION
    endpoints_api:
      - GET /api/v1/suppliers
      - POST /api/v1/suppliers
      - GET /api/v1/suppliers/{id}
      - PATCH /api/v1/suppliers/{id}
      - POST /api/v1/suppliers/{id}/evaluate
    componentes_frontend:
      - SupplierList
      - SupplierForm
      - SupplierEvaluation
      - SupplierRatingStars

  - id: RF-PURCH-002
    nombre: Requisiciones y Ordenes de Compra
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/requerimientos/RF-PURCH-002-requisiciones-ordenes-compra.md
    prioridad: P0
    estado: documentado
    descripcion: Flujo de requisicion desde obra hasta orden de compra
    especificaciones:
      - id: ET-PURCH-002
        nombre: Implementacion Requisiciones y OC
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/especificaciones/ET-PURCH-002-implementacion-requisiciones-ordenes.md
        estado: documentado
    tablas_bd:
      - inventory.requisiciones_obra  # EXTENSION
      - inventory.requisicion_lineas  # EXTENSION
      - purchase.purchase_orders  # GENERICO
      - purchase.purchase_order_lines  # GENERICO
      - purchase.purchase_order_construction  # EXTENSION
      - purchase.comparativo_cotizaciones  # EXTENSION
      - purchase.comparativo_proveedores  # EXTENSION
      - purchase.comparativo_productos  # EXTENSION
    endpoints_api:
      - GET /api/v1/requisiciones
      - POST /api/v1/requisiciones
      - GET /api/v1/requisiciones/{id}
      - POST /api/v1/requisiciones/{id}/approve
      - POST /api/v1/requisiciones/{id}/generate-oc
      - GET /api/v1/purchase-orders
      - POST /api/v1/purchase-orders
      - POST /api/v1/purchase-orders/{id}/approve
      - GET /api/v1/comparativos
      - POST /api/v1/comparativos
    componentes_frontend:
      - RequisicionList
      - RequisicionForm
      - RequisicionApproval
      - PurchaseOrderList
      - PurchaseOrderForm
      - ComparativoGrid
      - ComparativoWizard

  - id: RF-PURCH-003
    nombre: Almacenes e Inventarios
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/requerimientos/RF-PURCH-003-almacenes-inventarios.md
    prioridad: P0
    estado: documentado
    descripcion: Gestion de almacenes por proyecto y control de stock
    especificaciones:
      - id: ET-PURCH-003
        nombre: Implementacion Almacenes
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/especificaciones/ET-PURCH-003-implementacion-almacenes.md
        estado: documentado
    tablas_bd:
      - inventory.warehouses  # GENERICO
      - inventory.almacenes_proyecto  # EXTENSION
      - inventory.products  # GENERICO
      - inventory.stock_quants  # GENERICO
      - inventory.stock_moves  # GENERICO
    endpoints_api:
      - GET /api/v1/warehouses
      - POST /api/v1/warehouses
      - GET /api/v1/warehouses/{id}/stock
      - GET /api/v1/products
      - POST /api/v1/products
      - GET /api/v1/stock-moves
      - POST /api/v1/stock-moves
    componentes_frontend:
      - WarehouseList
      - WarehouseForm
      - WarehouseByProject
      - ProductList
      - ProductForm
      - StockGrid
      - StockMoveForm

  - id: RF-PURCH-004
    nombre: Kardex y Alertas
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/requerimientos/RF-PURCH-004-kardex-alertas.md
    prioridad: P1
    estado: documentado
    descripcion: Kardex de movimientos y alertas de stock minimo
    especificaciones:
      - id: ET-PURCH-004
        nombre: Implementacion Kardex y Alertas
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/especificaciones/ET-PURCH-004-implementacion-kardex-alertas.md
        estado: documentado
    tablas_bd:
      - inventory.stock_moves  # GENERICO
      - inventory.consumos_obra  # EXTENSION
    endpoints_api:
      - GET /api/v1/kardex/{product_id}
      - GET /api/v1/kardex/{product_id}/by-warehouse
      - GET /api/v1/alerts/low-stock
      - GET /api/v1/consumos-obra
      - POST /api/v1/consumos-obra
    componentes_frontend:
      - KardexView
      - KardexReport
      - LowStockAlert
      - ConsumoObraForm
      - ConsumosPorLote

# =============================================================================
# HISTORIAS DE USUARIO
# =============================================================================
historias_usuario:
  - id: US-PURCH-001
    nombre: Registro de Proveedor
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/historias-usuario/US-PURCH-001-registro-proveedor.md
    requerimientos: [RF-PURCH-001]

  - id: US-PURCH-002
    nombre: Solicitud de Cotizaciones
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/historias-usuario/US-PURCH-002-solicitud-cotizaciones.md
    requerimientos: [RF-PURCH-002]

  - id: US-PURCH-003
    nombre: Crear Requisicion de Obra
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/historias-usuario/US-PURCH-003-crear-requisicion-obra.md
    requerimientos: [RF-PURCH-002]

  - id: US-PURCH-004
    nombre: Aprobar y Generar Orden de Compra
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/historias-usuario/US-PURCH-004-aprobar-generar-orden-compra.md
    requerimientos: [RF-PURCH-002]

  - id: US-PURCH-005
    nombre: Recibir Material en Almacen
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/historias-usuario/US-PURCH-005-recibir-material-almacen.md
    requerimientos: [RF-PURCH-003]

  - id: US-PURCH-006
    nombre: Control de Almacenes y Movimientos
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/historias-usuario/US-PURCH-006-control-almacenes-movimientos.md
    requerimientos: [RF-PURCH-003]

  - id: US-PURCH-007
    nombre: Kardex y Analisis de Consumo
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/historias-usuario/US-PURCH-007-kardex-analisis-consumo.md
    requerimientos: [RF-PURCH-004]

  - id: US-PURCH-008
    nombre: Dashboard de Inventarios y Alertas
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/historias-usuario/US-PURCH-008-dashboard-inventarios-alertas.md
    requerimientos: [RF-PURCH-004]

# =============================================================================
# ARCHIVOS SQL/RLS
# =============================================================================
archivos_implementacion:
  - tipo: rls_policies
    archivo: 01-fase-alcance-inicial/MAI-004-compras-inventarios/implementacion/ET-PURCH-rls-policies.sql

# =============================================================================
# DEPENDENCIAS
# =============================================================================
dependencias:
  modulos_requeridos:
    - MAI-001  # Autenticacion
    - MAI-002  # Proyectos (almacen por proyecto)
    - MAI-003  # Conceptos (consumos por concepto)
  modulos_dependientes:
    - MAI-005  # Avances registran consumos
    - MAI-008  # Estimaciones

# =============================================================================
# METRICAS DE COBERTURA
# =============================================================================
metricas:
  total_rf: 4
  total_et: 4
  total_us: 8
  total_tablas: 14
  tablas_genericas: 7
  tablas_extension: 7
  cobertura_documentacion: 100%
  cobertura_implementacion: 0%

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