save freight order ids on carrier

This commit is contained in:
Yisroel Baum 2025-11-16 20:56:36 +02:00
parent ca6dc0142c
commit a5229f1e03
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

@ -2,6 +2,7 @@
namespace FreightQuote\FreightOrder\UseCases;
use FreightQuote\Carrier\CarrierRepository;
use FreightQuote\FreightOrder\FreightOrderRepository;
use FreightQuote\FreightOrder\FreightOrder;
@ -9,10 +10,36 @@ class CreateFreightOrder
{
public function __construct(
private FreightOrderRepository $freightOrderRepo,
private CarrierRepository $carrierRepo,
) {}
public function execute(
CreateFreightOrderRequestDTO $dto,
): FreightOrder {
$savedFreightOrder = $this->constructFreightOrder($dto);
foreach ($dto->carrierIds as $carrierId) {
$this->updateCarrier(
$carrierId,
$savedFreightOrder->getId()
);
}
return $savedFreightOrder;
}
private function updateCarrier(
int $carrierId,
int $freightOrderId
): void {
$carrier = $this->carrierRepo->find($carrierId);
$carrierFreightOrderIds = $carrier->getFreightOrderIds();
$carrierFreightOrderIds[] = $freightOrderId;
$carrier->setFreightOrderIds($carrierFreightOrderIds);
$this->carrierRepo->save($carrier);
}
private function constructFreightOrder(
CreateFreightOrderRequestDTO $dto,
): FreightOrder {
return $this->freightOrderRepo->save(
new FreightOrder(