<?php

declare(strict_types=1);

namespace Gls\GlsPoland\AdePlus\Type;

final class CCustomsArticle
{
    /**
     * @var int
     */
    private $quantity;

    /**
     * @var string
     */
    private $description;

    /**
     * @var string
     */
    private $country_origin;

    /**
     * @var string
     */
    private $tariff;

    /**
     * @var float
     */
    private $weight_net;

    /**
     * @var float
     */
    private $weight_gross;

    /**
     * @var float
     */
    private $price;

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

    public function withQuantity(int $quantity): CCustomsArticle
    {
        $new = clone $this;
        $new->quantity = $quantity;

        return $new;
    }

    public function getDescription(): string
    {
        return $this->description;
    }

    public function withDescription(string $description): CCustomsArticle
    {
        $new = clone $this;
        $new->description = $description;

        return $new;
    }

    public function getCountry_origin(): string
    {
        return $this->country_origin;
    }

    public function withCountry_origin(string $country_origin): CCustomsArticle
    {
        $new = clone $this;
        $new->country_origin = $country_origin;

        return $new;
    }

    public function getTariff(): string
    {
        return $this->tariff;
    }

    public function withTariff(string $tariff): CCustomsArticle
    {
        $new = clone $this;
        $new->tariff = $tariff;

        return $new;
    }

    public function getWeight_net(): float
    {
        return $this->weight_net;
    }

    public function withWeight_net(float $weight_net): CCustomsArticle
    {
        $new = clone $this;
        $new->weight_net = $weight_net;

        return $new;
    }

    public function getWeight_gross(): float
    {
        return $this->weight_gross;
    }

    public function withWeight_gross(float $weight_gross): CCustomsArticle
    {
        $new = clone $this;
        $new->weight_gross = $weight_gross;

        return $new;
    }

    public function getPrice(): float
    {
        return $this->price;
    }

    public function withPrice(float $price): CCustomsArticle
    {
        $new = clone $this;
        $new->price = $price;

        return $new;
    }
}
