From 04c498afb60d7ce3cd4d764991468b299b37fa28 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Sat, 22 Nov 2025 21:13:55 +0200 Subject: [PATCH] add isClosed, notes, cost, fileAttachments to bid --- README.md | 2 -- src/Bid/Bid.php | 24 +++++++++++++++++++ .../UseCases/CreateFreightOrder.php | 4 ++++ tests/Fakes/Bid/FakeBidRepository.php | 8 +++++++ tests/Unit/Bid/BidTest.php | 11 ++++++++- .../Bid/UseCases/GetBidForCarrierTest.php | 11 ++++++++- .../UseCases/CreateFreightOrderTest.php | 4 ++++ 7 files changed, 60 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 020c73a..308a07e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # TODO - - Add cost, notes, file attachments, closed to bid entity - - cost = nullable int, notes = string, files = array, closed = bool - Add date created to freight quote entity - If bid == closed, do not show bid to carriers on future requests - Make UpdateBid use case diff --git a/src/Bid/Bid.php b/src/Bid/Bid.php index f69175e..dfdef67 100644 --- a/src/Bid/Bid.php +++ b/src/Bid/Bid.php @@ -9,6 +9,10 @@ class Bid private int $freightOrderId, private int $carrierId, private bool $wasOpened, + private bool $isClosed, + private ?int $cost, + private ?string $notes, + private ?array $fileAttachments, ) {} public function getId(): ?string @@ -49,4 +53,24 @@ class Bid { $this->wasOpened = $wasOpened; } + + public function getCost(): ?int + { + return $this->cost; + } + + public function getNotes(): ?string + { + return $this->notes; + } + + public function getFileAttachments(): ?array + { + return $this->fileAttachments; + } + + public function isClosed(): bool + { + return $this->isClosed; + } } diff --git a/src/FreightOrder/UseCases/CreateFreightOrder.php b/src/FreightOrder/UseCases/CreateFreightOrder.php index 46391df..4371bb6 100644 --- a/src/FreightOrder/UseCases/CreateFreightOrder.php +++ b/src/FreightOrder/UseCases/CreateFreightOrder.php @@ -71,6 +71,10 @@ class CreateFreightOrder freightOrderId: $freightOrderId, carrierId: $carrierId, wasOpened: false, + isClosed: false, + cost: null, + notes: null, + fileAttachments: null, ) ); } diff --git a/tests/Fakes/Bid/FakeBidRepository.php b/tests/Fakes/Bid/FakeBidRepository.php index 30aa7a4..851f34e 100644 --- a/tests/Fakes/Bid/FakeBidRepository.php +++ b/tests/Fakes/Bid/FakeBidRepository.php @@ -26,6 +26,10 @@ class FakeBidRepository implements BidRepository $bid->getFreightOrderId(), $bid->getCarrierId(), $bid->getWasOpened(), + $bid->isClosed(), + $bid->getCost(), + $bid->getNotes(), + $bid->getFileAttachments(), ); } @@ -38,6 +42,10 @@ class FakeBidRepository implements BidRepository $bid->getFreightOrderId(), $bid->getCarrierId(), $bid->getWasOpened(), + $bid->isClosed(), + $bid->getCost(), + $bid->getNotes(), + $bid->getFileAttachments(), ); } } diff --git a/tests/Unit/Bid/BidTest.php b/tests/Unit/Bid/BidTest.php index 93eef48..0f3d236 100644 --- a/tests/Unit/Bid/BidTest.php +++ b/tests/Unit/Bid/BidTest.php @@ -10,7 +10,16 @@ class BidTest extends TestCase public function test_bid_link_generated(): void { $bidId = '124e56abf82'; - $bid = new Bid($bidId, 0, 0, false); + $bid = new Bid( + $bidId, + 0, + 0, + false, + false, + null, + null, + null + ); $this->assertEquals( "https://freightquotes.com/bid/$bidId", $bid->getBidLink() diff --git a/tests/Unit/Bid/UseCases/GetBidForCarrierTest.php b/tests/Unit/Bid/UseCases/GetBidForCarrierTest.php index 8d4a4ba..6fce3ae 100644 --- a/tests/Unit/Bid/UseCases/GetBidForCarrierTest.php +++ b/tests/Unit/Bid/UseCases/GetBidForCarrierTest.php @@ -31,7 +31,16 @@ class GetBidForCarrierTest extends TestCase public function test_first_view_flips_opened_flag(): void { $bidId = 'abcd'; - $this->bidRepo->save(new Bid($bidId, 0, 0, false)); + $this->bidRepo->save(new Bid( + $bidId, + 0, + 0, + false, + false, + null, + null, + null, + )); $foundBid = $this->useCase->execute( new GetBidForCarrierRequest($bidId) ); diff --git a/tests/Unit/FreightOrder/UseCases/CreateFreightOrderTest.php b/tests/Unit/FreightOrder/UseCases/CreateFreightOrderTest.php index 80a8d30..a64502d 100644 --- a/tests/Unit/FreightOrder/UseCases/CreateFreightOrderTest.php +++ b/tests/Unit/FreightOrder/UseCases/CreateFreightOrderTest.php @@ -156,5 +156,9 @@ class CreateFreightOrderTest extends TestCase $bid->getFreightOrderId() ); $this->assertEquals($carrierId, $bid->getCarrierId()); + $this->assertEquals(null, $bid->getCost()); + $this->assertEquals(null, $bid->getNotes()); + $this->assertEquals(null, $bid->getFileAttachments()); + $this->assertEquals(false, $bid->isClosed()); } }