<?php

namespace App\Classes\Modules\PackingLists\DataTransferObjects;

use App\Classes\General\Interfaces\DataTransferObject;
use Carbon\Carbon;

class ContainerObject implements DataTransferObject
{

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

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

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

    /** @var int  */
    private $containerType;

    /** @var Carbon */
    private $loadingDate;

    /** @var int */
    private $status;

    /**
     * ContainerObject constructor.
     * @param string $reference
     * @param string $containerNumber
     * @param string $sealReference
     * @param int $containerType
     * @param Carbon $loadingDate
     * @param int $status
     */
    public function __construct(string $reference, string $containerNumber, string $sealReference, int $containerType, Carbon $loadingDate, int $status)
    {
        $this->reference = $reference;
        $this->containerNumber = $containerNumber;
        $this->sealReference = $sealReference;
        $this->containerType = $containerType;
        $this->loadingDate = $loadingDate;
        $this->status = $status;
    }

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

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

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

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

    /**
     * @return Carbon
     */
    public function getLoadingDate(): Carbon
    {
        return $this->loadingDate;
    }

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


}
