save freight order ids on carrier
This commit is contained in:
parent
ca6dc0142c
commit
a5229f1e03
1 changed files with 27 additions and 0 deletions
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue