feat(shipments): add ShipmentProviderInterface and ShipmentProviderRegistry

- Introduced ShipmentProviderInterface to define the contract for shipment providers.
- Implemented ShipmentProviderRegistry to manage and retrieve shipment providers.
- Added a new tool for probing Apaczka order_send payload variants, enhancing debugging capabilities.
This commit is contained in:
2026-03-08 23:45:10 +01:00
parent af052e1ff5
commit 2b12fde248
34 changed files with 3285 additions and 233 deletions

View File

@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace App\Modules\Shipments;
interface ShipmentProviderInterface
{
public function code(): string;
/**
* @return array<int, array<string, mixed>>
*/
public function getDeliveryServices(): array;
/**
* @param array<string, mixed> $formData
* @return array<string, mixed>
*/
public function createShipment(int $orderId, array $formData): array;
/**
* @return array<string, mixed>
*/
public function checkCreationStatus(int $packageId): array;
/**
* @return array<string, mixed>
*/
public function downloadLabel(int $packageId, string $storagePath): array;
}