diff --git a/src/FreightOrder/FreightOrderRepository.php b/src/FreightOrder/FreightOrderRepository.php new file mode 100644 index 0000000..2034216 --- /dev/null +++ b/src/FreightOrder/FreightOrderRepository.php @@ -0,0 +1,10 @@ +existingFreightOrders as $freightOrder) { + if ($freightOrder->getId() === $id) { + return new FreightOrder( + $freightOrder->getId(), + $freightOrder->getShipFrom(), + $freightOrder->getShipTo(), + $freightOrder->getPickupDate(), + $freightOrder->getDeliveryDeadline(), + $freightOrder->getLoadDetails(), + $freightOrder->getNotes(), + $freightOrder->getFileAttachments(), + ); + } + } + + return null; + } + + public function save(FreightOrder $freightOrder): FreightOrder + { + $id = $freightOrder->getId(); + if ($id === null) { + $id = $this->getNextId(); + $freightOrder->setId($id); + } + $this->existingFreightOrders[$id] = $freightOrder; + return new FreightOrder( + $freightOrder->getId(), + $freightOrder->getShipFrom(), + $freightOrder->getShipTo(), + $freightOrder->getPickupDate(), + $freightOrder->getDeliveryDeadline(), + $freightOrder->getLoadDetails(), + $freightOrder->getNotes(), + $freightOrder->getFileAttachments(), + ); + } + + private function getNextId(): int + { + return count($this->existingFreightOrders); } }