2026-07-16 17:14:23 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Modules\Core\Shipping\Models;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Database\Eloquent\Casts\AsArrayObject;
|
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
2026-07-19 17:41:09 +03:00
|
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
2026-07-16 17:14:23 +03:00
|
|
|
use Lunar\Models\Order;
|
|
|
|
|
|
|
|
|
|
class Shipment extends Model
|
|
|
|
|
{
|
|
|
|
|
protected $guarded = [];
|
|
|
|
|
|
|
|
|
|
protected $casts = [
|
|
|
|
|
'meta' => AsArrayObject::class,
|
|
|
|
|
'label_printed_at' => 'datetime',
|
|
|
|
|
'cancelled_at' => 'datetime',
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
public function order(): BelongsTo
|
|
|
|
|
{
|
|
|
|
|
return $this->belongsTo(Order::class);
|
|
|
|
|
}
|
2026-07-19 17:41:09 +03:00
|
|
|
|
2026-09-14 00:03:06 +03:00
|
|
|
public function manifest(): BelongsTo
|
|
|
|
|
{
|
|
|
|
|
return $this->belongsTo(Manifest::class);
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-19 17:41:09 +03:00
|
|
|
public function shipmentInfo(): HasMany
|
|
|
|
|
{
|
|
|
|
|
return $this->hasMany(ShipmentInfo::class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function latestShipmentInfo(): ?ShipmentInfo
|
|
|
|
|
{
|
|
|
|
|
return $this->shipmentInfo()->latest('occurred_at')->first();
|
|
|
|
|
}
|
2026-07-16 17:14:23 +03:00
|
|
|
}
|