<?php
namespace Incoviba\Service\Venta;

use Incoviba\Repository;
use Incoviba\Model;

class Precio
{
    public function __construct(protected Repository\Venta\Precio $precioRepository, protected Repository\Venta\EstadoPrecio $estadoPrecioRepository) {}

    public function getByProyecto(int $proyecto_id): array
    {
        $precios = $this->precioRepository->fetchByProyecto($proyecto_id);
        foreach ($precios as &$precio) {
            $precio->estados = $this->estadoPrecioRepository->fetchByPrecio($precio->id);
            $precio->current = $this->estadoPrecioRepository->fetchCurrentByPrecio($precio->id);
        }
        return $precios;
    }
    public function getVigenteByUnidad(int $unidad_id): Model\Venta\Precio
    {
        $precio = $this->precioRepository->fetchVigenteByUnidad($unidad_id);
        $precio->estados = $this->estadoPrecioRepository->fetchByPrecio($precio->id);
        $precio->current = $this->estadoPrecioRepository->fetchCurrentByPrecio($precio->id);
        return $precio;
    }
    public function getByUnidad(int $unidad_id): array
    {
        $precios = $this->precioRepository->fetchByUnidad($unidad_id);
        foreach ($precios as &$precio) {
            $precio->estados = $this->estadoPrecioRepository->fetchByPrecio($precio->id);
            $precio->current = $this->estadoPrecioRepository->fetchCurrentByPrecio($precio->id);
        }
        return $precios;
    }
}
