'int', 'airline_id' => 'int', 'flight_type' => 'int', 'departure_time' => 'datetime', 'departure_airport_id' => 'int', 'arrival_airport_id' => 'int', 'price' => 'float', 'capacity' => 'int', 'views' => 'int', 'status' => 'int' ]; protected $fillable = [ 'title', 'file_id', 'airline_id', 'flight_type', 'departure_time', 'departure_airport_id', 'arrival_airport_id', 'price', 'summary', 'capacity', 'description', 'views', 'status' ]; public function airline() { return $this->belongsTo(Airline::class); } public function file() { return $this->belongsTo(File::class); } public function airport() { return $this->belongsTo(Airport::class, 'departure_airport_id'); } public function bookings() { return $this->hasMany(Booking::class); } public function arrivalAirport() { return $this->belongsTo(Airport::class, 'arrival_airport_id'); } public function departureAirport() { return $this->belongsTo(Airport::class, 'departure_airport_id'); } public function comments() { return $this->hasMany(Comment::class, 'flight_id'); } #[Scope] protected function applyFilter(Builder $query): void { $request = request(); if ($request->filled('flight_type')) { $query->where('flight_type', $request->input('flight_type')); } } }