<?php

namespace Myvetshop\Module\Clinique\Generated\Jane\Model;

class OrdersGetResponse200ItemProductsItem extends \ArrayObject
{
    /**
     * @var array
     */
    protected $initialized = [];

    public function isInitialized($property): bool
    {
        return array_key_exists($property, $this->initialized);
    }
    /**
     * @var string
     */
    protected $reference;
    /**
     * @var string
     */
    protected $name;
    /**
     * @var int|null
     */
    protected $categoryId;
    /**
     * @var int
     */
    protected $quantity;
    /**
     * Unit purchase price of the product (taxes excluded)
     *
     * @var string
     */
    protected $purchasePrice;
    /**
     * Unit price of the product (taxes excluded)
     *
     * @var string
     */
    protected $priceTaxExcl;
    /**
     * Total price of the product considering the quantity (taxes excluded)
     *
     * @var string
     */
    protected $totalPriceTaxExcl;
    /**
     * Total price of the product considering the quantity (taxes included)
     *
     * @var string
     */
    protected $totalPriceTaxIncl;

    /**
     * @return string
     */
    public function getReference(): string
    {
        return $this->reference;
    }

    /**
     * @param string $reference
     *
     * @return self
     */
    public function setReference(string $reference): self
    {
        $this->initialized['reference'] = true;
        $this->reference = $reference;

        return $this;
    }

    /**
     * @return string
     */
    public function getName(): string
    {
        return $this->name;
    }

    /**
     * @param string $name
     *
     * @return self
     */
    public function setName(string $name): self
    {
        $this->initialized['name'] = true;
        $this->name = $name;

        return $this;
    }

    /**
     * @return int|null
     */
    public function getCategoryId(): ?int
    {
        return $this->categoryId;
    }

    /**
     * @param int|null $categoryId
     *
     * @return self
     */
    public function setCategoryId(?int $categoryId): self
    {
        $this->initialized['categoryId'] = true;
        $this->categoryId = $categoryId;

        return $this;
    }

    /**
     * @return int
     */
    public function getQuantity(): int
    {
        return $this->quantity;
    }

    /**
     * @param int $quantity
     *
     * @return self
     */
    public function setQuantity(int $quantity): self
    {
        $this->initialized['quantity'] = true;
        $this->quantity = $quantity;

        return $this;
    }

    /**
     * Unit purchase price of the product (taxes excluded)
     *
     * @return string
     */
    public function getPurchasePrice(): string
    {
        return $this->purchasePrice;
    }

    /**
     * Unit purchase price of the product (taxes excluded)
     *
     * @param string $purchasePrice
     *
     * @return self
     */
    public function setPurchasePrice(string $purchasePrice): self
    {
        $this->initialized['purchasePrice'] = true;
        $this->purchasePrice = $purchasePrice;

        return $this;
    }

    /**
     * Unit price of the product (taxes excluded)
     *
     * @return string
     */
    public function getPriceTaxExcl(): string
    {
        return $this->priceTaxExcl;
    }

    /**
     * Unit price of the product (taxes excluded)
     *
     * @param string $priceTaxExcl
     *
     * @return self
     */
    public function setPriceTaxExcl(string $priceTaxExcl): self
    {
        $this->initialized['priceTaxExcl'] = true;
        $this->priceTaxExcl = $priceTaxExcl;

        return $this;
    }

    /**
     * Total price of the product considering the quantity (taxes excluded)
     *
     * @return string
     */
    public function getTotalPriceTaxExcl(): string
    {
        return $this->totalPriceTaxExcl;
    }

    /**
     * Total price of the product considering the quantity (taxes excluded)
     *
     * @param string $totalPriceTaxExcl
     *
     * @return self
     */
    public function setTotalPriceTaxExcl(string $totalPriceTaxExcl): self
    {
        $this->initialized['totalPriceTaxExcl'] = true;
        $this->totalPriceTaxExcl = $totalPriceTaxExcl;

        return $this;
    }

    /**
     * Total price of the product considering the quantity (taxes included)
     *
     * @return string
     */
    public function getTotalPriceTaxIncl(): string
    {
        return $this->totalPriceTaxIncl;
    }

    /**
     * Total price of the product considering the quantity (taxes included)
     *
     * @param string $totalPriceTaxIncl
     *
     * @return self
     */
    public function setTotalPriceTaxIncl(string $totalPriceTaxIncl): self
    {
        $this->initialized['totalPriceTaxIncl'] = true;
        $this->totalPriceTaxIncl = $totalPriceTaxIncl;

        return $this;
    }
}
