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;
|
namespace FreightQuote\FreightOrder\UseCases;
|
||||||
|
|
||||||
|
use FreightQuote\Carrier\CarrierRepository;
|
||||||
use FreightQuote\FreightOrder\FreightOrderRepository;
|
use FreightQuote\FreightOrder\FreightOrderRepository;
|
||||||
use FreightQuote\FreightOrder\FreightOrder;
|
use FreightQuote\FreightOrder\FreightOrder;
|
||||||
|
|
||||||
|
|
@ -9,10 +10,36 @@ class CreateFreightOrder
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private FreightOrderRepository $freightOrderRepo,
|
private FreightOrderRepository $freightOrderRepo,
|
||||||
|
private CarrierRepository $carrierRepo,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
public function execute(
|
public function execute(
|
||||||
CreateFreightOrderRequestDTO $dto,
|
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 {
|
): FreightOrder {
|
||||||
return $this->freightOrderRepo->save(
|
return $this->freightOrderRepo->save(
|
||||||
new FreightOrder(
|
new FreightOrder(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue