Feat: Adding Shippment Tracking
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\Shipping\Enums;
|
||||
|
||||
/**
|
||||
* Normalized shipment status, mapped from each carrier's own status codes
|
||||
* (e.g. ACS's shipment_status/non_delivery_reason_code, Box Now's parcel
|
||||
* state) so the rest of the system never needs to know carrier-specific
|
||||
* vocabulary.
|
||||
*/
|
||||
enum TrackingStatus: string
|
||||
{
|
||||
case Pending = 'pending';
|
||||
case InTransit = 'in_transit';
|
||||
case OutForDelivery = 'out_for_delivery';
|
||||
case Delivered = 'delivered';
|
||||
case Failed = 'failed';
|
||||
case Returned = 'returned';
|
||||
case Cancelled = 'cancelled';
|
||||
case Unknown = 'unknown';
|
||||
|
||||
public function isTerminal(): bool
|
||||
{
|
||||
return match ($this) {
|
||||
self::Delivered, self::Returned, self::Cancelled => true,
|
||||
default => false,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user