41 lines
940 B
PHP
41 lines
940 B
PHP
<?php
|
|
|
|
namespace Modules\Core\Shipping\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Casts\AsArrayObject;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
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);
|
|
}
|
|
|
|
public function manifest(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Manifest::class);
|
|
}
|
|
|
|
public function shipmentInfo(): HasMany
|
|
{
|
|
return $this->hasMany(ShipmentInfo::class);
|
|
}
|
|
|
|
public function latestShipmentInfo(): ?ShipmentInfo
|
|
{
|
|
return $this->shipmentInfo()->latest('occurred_at')->first();
|
|
}
|
|
}
|