Files
shipping-portal/app/Classes/Modules/PerfexCRM/DataTransferObjects/UpdatePerfexCRMObject.php
T

185 lines
4.0 KiB
PHP

<?php
namespace App\Classes\Modules\PerfexCRM\DataTransferObjects;
use Illuminate\Http\Request;
use App\Classes\General\Interfaces\DataTransferObject;
class UpdatePerfexCRMObject 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 int */
private $invoiceId = 0;
/** @var array */
private $milestoneNames;
/** @var array */
private $tasks;
public function __construct(string $companyName, string $companyReference, string $contactName, string $contactEmail, string $bookingMarking, string $projectName, int $projectStatus, int $invoiceId, array $milestoneNames, array $tasks)
{
$this->companyName = $companyName;
$this->companyReference = $companyReference;
$this->contactName = $contactName;
$this->contactEmail = $contactEmail;
$this->bookingMarking = $bookingMarking;
$this->projectName = $projectName;
$this->projectStatus = $projectStatus;
$this->$invoiceId = $invoiceId;
$this->milestoneNames = $milestoneNames;
$this->tasks = $tasks;
}
/**
* @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 int
*/
public function getProjectStatus(): int
{
return $this->projectStatus;
}
/**
* @return int
*/
public function getInvoiceId(): int
{
return $this->invoiceId;
}
/**
* @return array
*/
public function getMilestoneNames(): array
{
return $this->milestoneNames;
}
/**
* @return array
*/
public function getTasks(): array
{
return $this->tasks;
}
public function setTasks($tasks)
{
$this->tasks = $tasks;
}
public function setInvoiceId($invoiceId)
{
$this->invoiceId = $invoiceId;
}
public function toArray(): array
{
return [
'companyName' => $this->companyName,
'companyReference' => $this->companyReference,
'contactName' => $this->contactName,
'contactEmail' => $this->contactEmail,
'bookingMarking' => $this->bookingMarking,
'projectName' => $this->projectName,
'projectStatus' => $this->projectStatus,
'invoiceId' => $this->invoiceId,
'milestoneNames' => $this->milestoneNames,
'tasks' => $this->tasks,
];
}
public function toJson(): string
{
return json_encode($this->toArray());
}
public static function fromJson(string $json): self
{
$data = json_decode($json, true);
return new self(
$data['companyName'],
$data['companyReference'],
$data['contactName'],
$data['contactEmail'],
$data['bookingMarking'],
$data['projectName'],
$data['projectStatus'],
$data['invoiceId'],
$data['milestoneNames'],
$data['tasks']
);
}
}