<?php

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

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

    public function isInitialized($property): bool
    {
        return array_key_exists($property, $this->initialized);
    }
    /**
     * @var int
     */
    protected $id;
    /**
     * @var \DateTime
     */
    protected $invoiceDate;
    /**
     * @var int
     */
    protected $state;
    /**
     * @var int
     */
    protected $clinicId;
    /**
     * @var string
     */
    protected $supplier;
    /**
     * @var OrdersGetResponse200ItemProductsItem[]
     */
    protected $products;
    /**
     * @var OrdersGetResponse200ItemDiscountsItem[]
     */
    protected $discounts;
    /**
     * @var OrdersGetResponse200ItemRefundsItem[]
     */
    protected $refunds;

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

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

        return $this;
    }

    /**
     * @return \DateTime
     */
    public function getInvoiceDate(): \DateTime
    {
        return $this->invoiceDate;
    }

    /**
     * @param \DateTime $invoiceDate
     *
     * @return self
     */
    public function setInvoiceDate(\DateTime $invoiceDate): self
    {
        $this->initialized['invoiceDate'] = true;
        $this->invoiceDate = $invoiceDate;

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

    /**
     * @return OrdersGetResponse200ItemProductsItem[]
     */
    public function getProducts(): array
    {
        return $this->products;
    }

    /**
     * @param OrdersGetResponse200ItemProductsItem[] $products
     *
     * @return self
     */
    public function setProducts(array $products): self
    {
        $this->initialized['products'] = true;
        $this->products = $products;

        return $this;
    }

    /**
     * @return OrdersGetResponse200ItemDiscountsItem[]
     */
    public function getDiscounts(): array
    {
        return $this->discounts;
    }

    /**
     * @param OrdersGetResponse200ItemDiscountsItem[] $discounts
     *
     * @return self
     */
    public function setDiscounts(array $discounts): self
    {
        $this->initialized['discounts'] = true;
        $this->discounts = $discounts;

        return $this;
    }

    /**
     * @return OrdersGetResponse200ItemRefundsItem[]
     */
    public function getRefunds(): array
    {
        return $this->refunds;
    }

    /**
     * @param OrdersGetResponse200ItemRefundsItem[] $refunds
     *
     * @return self
     */
    public function setRefunds(array $refunds): self
    {
        $this->initialized['refunds'] = true;
        $this->refunds = $refunds;

        return $this;
    }
}
