أُنشئ من Tokal/Test
backend: align API/models with current PostgreSQL schema
فشلت بعض الفحوصات
Deploy Backend / deploy (push) Has been cancelled
فشلت بعض الفحوصات
Deploy Backend / deploy (push) Has been cancelled
هذا الالتزام موجود في:
@@ -4,15 +4,19 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class ReservationTableAssignment extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
public $timestamps = false;
|
||||
protected static ?string $resolvedTable = null;
|
||||
protected static ?string $resolvedTableForeignKey = null;
|
||||
|
||||
protected $fillable = [
|
||||
'reservation_id',
|
||||
'table_id',
|
||||
'venue_table_id',
|
||||
'assigned_at',
|
||||
];
|
||||
@@ -21,6 +25,49 @@ class ReservationTableAssignment extends Model
|
||||
'assigned_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function __construct(array $attributes = [])
|
||||
{
|
||||
parent::__construct($attributes);
|
||||
$this->table = self::tableName();
|
||||
}
|
||||
|
||||
public static function tableName(): string
|
||||
{
|
||||
if (self::$resolvedTable !== null) {
|
||||
return self::$resolvedTable;
|
||||
}
|
||||
|
||||
self::$resolvedTable = Schema::hasTable('reservation_table_assignments')
|
||||
? 'reservation_table_assignments'
|
||||
: 'reservation_tables';
|
||||
|
||||
return self::$resolvedTable;
|
||||
}
|
||||
|
||||
public static function tableForeignKey(): string
|
||||
{
|
||||
if (self::$resolvedTableForeignKey !== null) {
|
||||
return self::$resolvedTableForeignKey;
|
||||
}
|
||||
|
||||
self::$resolvedTableForeignKey = Schema::hasColumn(self::tableName(), 'venue_table_id')
|
||||
? 'venue_table_id'
|
||||
: 'table_id';
|
||||
|
||||
return self::$resolvedTableForeignKey;
|
||||
}
|
||||
|
||||
public function setVenueTableIdAttribute($value): void
|
||||
{
|
||||
$this->attributes[self::tableForeignKey()] = $value;
|
||||
}
|
||||
|
||||
public function getVenueTableIdAttribute()
|
||||
{
|
||||
$column = self::tableForeignKey();
|
||||
return $this->attributes[$column] ?? null;
|
||||
}
|
||||
|
||||
public function reservation()
|
||||
{
|
||||
return $this->belongsTo(Reservation::class);
|
||||
@@ -28,6 +75,6 @@ class ReservationTableAssignment extends Model
|
||||
|
||||
public function table()
|
||||
{
|
||||
return $this->belongsTo(VenueTable::class, 'venue_table_id');
|
||||
return $this->belongsTo(VenueTable::class, self::tableForeignKey());
|
||||
}
|
||||
}
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم