<?php

namespace App\Classes\Modules\Addresses\DataTransferObjects;

use App\Classes\General\Interfaces\DataTransferObject;

class AddressObject implements DataTransferObject
{

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

    /** @var string|null */
    private $streetTwo;

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

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

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

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

    /**
     * AddressObject constructor.
     * @param string $streetOne
     * @param null|string $streetTwo
     * @param int $countryId
     * @param int $stateId
     * @param int $districtId
     * @param string $postCode
     */
    public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, string $postCode)
    {
        $this->streetOne = $streetOne;
        $this->streetTwo = $streetTwo;
        $this->countryId = $countryId;
        $this->stateId = $stateId;
        $this->districtId = $districtId;
        $this->postCode = $postCode;
    }

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

    /**
     * @return null|string
     */
    public function getStreetTwo(): ?string
    {
        return $this->streetTwo;
    }

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

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

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

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


}