49 lines
1.5 KiB
PHP
49 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Domain\Inventory\Models;
|
|
|
|
use App\Domain\Reservations\Models\AssetBlock;
|
|
use App\Domain\Reservations\Models\ReservationItem;
|
|
use Database\Factories\SnipeAssetFactory;
|
|
use Illuminate\Database\Eloquent\Attributes\UseFactory;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
|
|
#[UseFactory(SnipeAssetFactory::class)]
|
|
class SnipeAsset extends Model
|
|
{
|
|
/** @use HasFactory<SnipeAssetFactory> */
|
|
use HasFactory;
|
|
|
|
protected $fillable = [
|
|
'snipe_asset_id', 'asset_tag', 'name', 'serial', 'model_id', 'model_name',
|
|
'category_id', 'category_name', 'manufacturer', 'status_id', 'status_name',
|
|
'location_id', 'location_name', 'requestable', 'assigned_type', 'assigned_id',
|
|
'image_url', 'source_updated_at', 'synced_at', 'content_hash', 'active',
|
|
'last_seen_sync_run_id',
|
|
];
|
|
|
|
protected function casts(): array
|
|
{
|
|
return [
|
|
'requestable' => 'boolean',
|
|
'active' => 'boolean',
|
|
'source_updated_at' => 'datetime',
|
|
'synced_at' => 'datetime',
|
|
];
|
|
}
|
|
|
|
/** @return HasMany<ReservationItem, $this> */
|
|
public function reservationItems(): HasMany
|
|
{
|
|
return $this->hasMany(ReservationItem::class);
|
|
}
|
|
|
|
/** @return HasMany<AssetBlock, $this> */
|
|
public function blocks(): HasMany
|
|
{
|
|
return $this->hasMany(AssetBlock::class);
|
|
}
|
|
}
|