Interface EstimacionConsumoService

All Known Implementing Classes:
EstimacionConsumoServiceImpl

public interface EstimacionConsumoService
Servicio responsable de estimar el consumo diario futuro de un insumo a partir de su histórico de movimientos que reducen stock.
  • Method Summary

    Modifier and Type
    Method
    Description
    calcular(Long insumoId, int ventanaDias, int horizonteDias)
    Calcula la estimación de consumo para un insumo.
    double
    calcularConsumoMedioDiario(Long insumoId, int ventanaDias)
    Devuelve solamente el consumo medio diario de un insumo sobre la ventana indicada, sin construir el DTO completo.
  • Method Details

    • calcular

      EstimacionConsumoResponse calcular(Long insumoId, int ventanaDias, int horizonteDias)
      Calcula la estimación de consumo para un insumo.
      Parameters:
      insumoId - ID del insumo
      ventanaDias - tamaño de la ventana de muestreo (debe ser >= 1)
      horizonteDias - horizonte para la proyección (debe ser >= 0)
      Returns:
      DTO con consumo total, media diaria y proyección al horizonte
      Throws:
      NotFoundException - si el insumo no existe
      IllegalArgumentException - si ventanaDias < 1 o horizonteDias < 0
    • calcularConsumoMedioDiario

      double calcularConsumoMedioDiario(Long insumoId, int ventanaDias)
      Devuelve solamente el consumo medio diario de un insumo sobre la ventana indicada, sin construir el DTO completo.

      Pensado para ser reutilizado por otros servicios (sugerencias de reposición, cobertura, etc.) que únicamente necesitan el ritmo medio y no la proyección.

      Parameters:
      insumoId - ID del insumo
      ventanaDias - tamaño de la ventana de muestreo (debe ser >= 1)
      Returns:
      consumo medio diario (0 si no hay movimientos en la ventana)
      Throws:
      IllegalArgumentException - si ventanaDias < 1