mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-22 14:04:06 +00:00
185 lines
4.0 KiB
PHP
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']
|
|
);
|
|
}
|
|
}
|