أُنشئ من Tokal/Test
64 أسطر
1.3 KiB
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);
|
|
}
|
|
}
|