25 lines
691 B
PHP
25 lines
691 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Modules\Core\Shipping\Contracts;
|
||
|
|
|
||
|
|
use Illuminate\Support\Collection;
|
||
|
|
use Modules\Core\Shipping\DataTransferObjects\ManifestResult;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Optional capability for carriers that batch shipments into a manifest
|
||
|
|
* before courier pickup (e.g. ACS's end-of-day pickup list). Carriers
|
||
|
|
* without this concept simply don't implement it.
|
||
|
|
*/
|
||
|
|
interface SupportsManifestBatching
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* Shipments created but not yet included in an issued manifest.
|
||
|
|
*/
|
||
|
|
public function pendingForManifest(): Collection;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Finalize the given shipments into a manifest with the carrier.
|
||
|
|
*/
|
||
|
|
public function issueManifest(Collection $shipments): ManifestResult;
|
||
|
|
}
|