feat: establish reservation portal foundation

This commit is contained in:
2026-08-04 15:24:08 +01:00
commit c96264ae96
226 changed files with 32232 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
<?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',
];
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);
}
}