*/ final readonly class GetFoCustomerOrderDetailQuery implements Query { public function __construct( private MapUrlService $mapUrlService, ) { } #[\Override] public function __invoke(QueryInput $input): GetFoCustomerOrderDetailQueryOutput { Assert::isInstanceOf($input, GetFoCustomerOrderDetailQueryInput::class); $order = $input->order; $order->load(['lines']); $orderDto = OrderDto::fromModel($order); $mapUrl = $order->delivery_address !== null ? $this->mapUrlService->generateUrl($order->delivery_address) : null; return new GetFoCustomerOrderDetailQueryOutput( order: $orderDto, mapUrl: $mapUrl, ); } }