الملفات
Tabeley-v0.0a/app/Models/VenueTable.php

64 أسطر
1.3 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Support\Facades\Schema;
class VenueTable extends Model
{
use HasFactory;
public $timestamps = false;
protected static ?string $labelColumn = null;
protected $fillable = [
'venue_id',
'seating_area_id',
'name',
'table_number',
'capacity',
'is_active',
];
public static function labelColumn(): string
{
if (self::$labelColumn !== null) {
return self::$labelColumn;
}
self::$labelColumn = Schema::hasColumn('venue_tables', 'name')
? 'name'
: 'table_number';
return self::$labelColumn;
}
public function setNameAttribute($value): void
{
$this->attributes[self::labelColumn()] = $value;
}
public function getNameAttribute()
{
$column = self::labelColumn();
return $this->attributes[$column] ?? null;
}
public function venue()
{
return $this->belongsTo(Venue::class);
}
public function seatingArea()
{
return $this->belongsTo(SeatingArea::class);
}
public function assignments()
{
return $this->hasMany(ReservationTableAssignment::class);
}
}