<?php

namespace App\Classes\Modules\PerfexCRM\DataTransferObjects;

use Illuminate\Http\Request;
use App\Classes\General\Interfaces\DataTransferObject;

class InitialPerfexCRMObject implements DataTransferObject
{
    /** @var string */
    private $companyName;

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

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

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

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

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

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

    /** @var array */
    private $milestoneNames;

    /** @var array */
    private $taskNames;


    public function __construct(string $companyName, string $companyReference, string $contactName, string $contactEmail, string $bookingMarking, string $projectName, int $projectStatus, array $milestoneNames, array $taskNames)
    {

        $this->companyName = $companyName;
        $this->companyReference = $companyReference;
        $this->contactName = $contactName;
        $this->contactEmail = $contactEmail;
        $this->bookingMarking = $bookingMarking;
        $this->projectName = $projectName;
        $this->projectStatus = $projectStatus;
        $this->milestoneNames = $milestoneNames;
        $this->taskNames = $taskNames;
    }

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

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

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

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

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

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

    /**
     * @return string
     */
    public function getProjectStatus(): int
    {
        return $this->projectStatus;
    }

    /**
     * @return array
     */
    public function getMilestoneNames(): array
    {
        return $this->milestoneNames;
    }

    /**
     * @return array
     */
    public function getTaskNames(): array
    {
        return $this->taskNames;
    }

}
