<?php

namespace Lc\CaracoleBundle\Doctrine\Extension;

use Lc\CaracoleBundle\Model\Config\TaxRateInterface;
use Lc\CaracoleBundle\Model\Config\UnitInterface;

interface PriceInterface
{
    /**
     * Retourne le prix hérité
     *
     * @return float
     */
    public function getPriceInherited(): ?float;

    /**
     * Retourne le TaxRate hérité
     *
     * @return TaxRateInterface
     */
    public function getTaxRateInherited(): ?TaxRateInterface;

    /**
     * Retourne le Unit hérité
     *
     * @return UnitInterface
     */
    public function getUnitInherited(): ?UnitInterface;

    public function getBuyingPriceInherited(): ?float;

    public function getBuyingPrice(): ?float;

    public function setBuyingPrice(?float $buyingPrice);

    public function getPrice(): ?float;

    public function setPrice(?float $price);

    public function getUnit(): ?UnitInterface;

    public function setUnit(?UnitInterface $unit);

    public function getTaxRate(): ?TaxRateInterface;

    public function setTaxRate(?TaxRateInterface $taxRate);
}