<?php

namespace App\Classes\Modules\PerfexCRM\DataTransferObjects;

use App\Classes\General\Interfaces\DataTransferObject;

class CreateTaskPerfexCRMObject implements DataTransferObject
{
    /** @var string */
    private $email;

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

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

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

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

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

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

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

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

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

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

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

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

    public function __construct(string $email, string $name, string $description, string $leadId, string $projectId, string $milestoneId, string $reference, string $onTaskCompletion, string $status, string $department, string $priority, string $duedate, int $invoiceId)
    {
        $this->email = $email;
        $this->name = $name;
        $this->description = $description;
        $this->leadId = $leadId;
        $this->projectId = $projectId;
        $this->milestoneId = $milestoneId;
        $this->reference = $reference;
        $this->onTaskCompletion = $onTaskCompletion;
        $this->status = $status;
        $this->department = $department;
        $this->priority = $priority;
        $this->duedate = $duedate;
        $this->invoiceId = $invoiceId;
    }

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

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

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

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

    public function setLeadId(string $leadId)
    {
        $this->leadId = $leadId;
    }

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

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

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

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

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

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

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

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

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