From 423439e897fc6d74e3bc8f2198083f4b3fc3718a Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Wed, 12 Nov 2025 22:11:11 +0200 Subject: [PATCH] add properties to freight order --- src/FreightOrder/FreightOrder.php | 56 ++++++++++++++++++- .../UseCases/CreateFreightOrder.php | 22 +++++++- .../UseCases/CreateFreightOrderRequestDTO.php | 11 ++++ 3 files changed, 85 insertions(+), 4 deletions(-) diff --git a/src/FreightOrder/FreightOrder.php b/src/FreightOrder/FreightOrder.php index c2fcae0..5d101cd 100644 --- a/src/FreightOrder/FreightOrder.php +++ b/src/FreightOrder/FreightOrder.php @@ -2,9 +2,63 @@ namespace FreightQuote\FreightOrder; +use DateTime; + class FreightOrder { - public function getId() + public function __construct( + private ?int $id, + private string $shipFrom, + private string $shipTo, + private DateTime $pickupDate, + private DateTime $deliveryDeadline, + private string $loadDetails, + private string $notes, + private array $fileAttachments, + ) {} + + public function getId(): ?int { + return $this->id; + } + + public function setId(int $id): void + { + $this->id = $id; + } + + public function getShipFrom(): string + { + return $this->shipFrom; + } + + public function getShipTo(): string + { + return $this->shipTo; + } + + public function getPickupDate(): DateTime + { + return $this->pickupDate; + } + + public function getDeliveryDeadline(): DateTime + { + return $this->deliveryDeadline; + } + + public function getLoadDetails(): string + { + return $this->loadDetails; + } + + public function getNotes(): string + { + return $this->notes; + } + + public function getFileAttachments(): array + { + return $this->fileAttachments; } } diff --git a/src/FreightOrder/UseCases/CreateFreightOrder.php b/src/FreightOrder/UseCases/CreateFreightOrder.php index 51f11dc..6211d51 100644 --- a/src/FreightOrder/UseCases/CreateFreightOrder.php +++ b/src/FreightOrder/UseCases/CreateFreightOrder.php @@ -2,12 +2,28 @@ namespace FreightQuote\FreightOrder\UseCases; +use FreightQuote\FreightOrder\FreightOrderRepository; use FreightQuote\FreightOrder\FreightOrder; class CreateFreightOrder { - public function execute(): ?FreightOrder - { - return new FreightOrder(); + public function __construct( + private FreightOrderRepository $freightOrderRepo, + ) {} + + public function execute( + CreateFreightOrderRequestDTO $dto, + ): FreightOrder { + return $this->freightOrderRepo->save( + new FreightOrder( + null, + $dto->shipFrom, + $dto->shipTo, + $dto->pickupDate, + $dto->deliveryDeadline, + $dto->loadDetails, + $dto->notes, + $dto->fileAttachments, + )); } } diff --git a/src/FreightOrder/UseCases/CreateFreightOrderRequestDTO.php b/src/FreightOrder/UseCases/CreateFreightOrderRequestDTO.php index a24dcce..336cd49 100644 --- a/src/FreightOrder/UseCases/CreateFreightOrderRequestDTO.php +++ b/src/FreightOrder/UseCases/CreateFreightOrderRequestDTO.php @@ -2,6 +2,17 @@ namespace FreightQuote\FreightOrder\UseCases; +use DateTime; + class CreateFreightOrderRequestDTO { + public function __construct( + public string $shipFrom, + public string $shipTo, + public DateTime $pickupDate, + public DateTime $deliveryDeadline, + public string $loadDetails, + public string $notes, + public array $fileAttachments, + ) {} }