Files

46 lines
1.2 KiB
PHP

<?php
namespace Modules\ContractorManagement\Models;
use App\Traits\HasPublicIdentifier;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Modules\ContractorManagement\Enums\EquipmentStatus;
class ContractorEquipment extends Model
{
use HasPublicIdentifier;
protected $table = 'contractor_equipment';
protected $fillable = [
'contractor_id', 'name', 'type', 'serial_number',
'status', 'daily_rate', 'last_maintenance_date',
];
protected function casts(): array
{
return [
'status' => EquipmentStatus::class,
'daily_rate' => 'decimal:2',
'last_maintenance_date' => 'date',
];
}
public function contractor(): BelongsTo
{
return $this->belongsTo(Contractor::class);
}
public function deployments(): HasMany
{
return $this->hasMany(EquipmentDeployment::class, 'contractor_equipment_id');
}
public function activeDeployment(): ?EquipmentDeployment
{
return $this->deployments()->whereNull('returned_date')->first();
}
}