<?php

namespace App\Classes\Modules\Addresses\DataTransferObjects;

use App\Classes\Interfaces\DataTransferObject;

class AddressObject implements DataTransferObject
{

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

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

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

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

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

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

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

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

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

    /**
     * AddressObject constructor.
     * @param int $companyId
     * @param string $streetOne
     * @param null|string $streetTwo
     * @param string $city
     * @param string $state
     * @param string $postCode
     * @param string $country
     * @param int $default
     * @param int $billing
     */
    public function __construct(int $companyId, string $streetOne, ?string $streetTwo, string $city, string $state, string $postCode, string $country, int $default, int $billing)
    {
        $this->companyId = $companyId;
        $this->streetOne = $streetOne;
        $this->streetTwo = $streetTwo;
        $this->city = $city;
        $this->state = $state;
        $this->postCode = $postCode;
        $this->country = $country;
        $this->default = $default;
        $this->billing = $billing;
    }

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

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

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

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

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

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

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

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

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


}