From d96a1de68fd34ed517a5cf0afb87a12a2fbabb28 Mon Sep 17 00:00:00 2001 From: mina-esn Date: Sun, 16 Aug 2026 16:57:00 +0330 Subject: [PATCH] refactor: update Flight model casts and relations --- app/Enums/FlightStatus.php | 13 +++++ app/Enums/FlightTripType.php | 9 ++++ app/Models/Flight.php | 96 +++++++++++++++++++++--------------- 3 files changed, 79 insertions(+), 39 deletions(-) create mode 100644 app/Enums/FlightStatus.php create mode 100644 app/Enums/FlightTripType.php diff --git a/app/Enums/FlightStatus.php b/app/Enums/FlightStatus.php new file mode 100644 index 0000000..b402f57 --- /dev/null +++ b/app/Enums/FlightStatus.php @@ -0,0 +1,13 @@ + 'int', - 'origin_airport_id' => 'int', - 'destination_airport_id' => 'int', - 'departure_time' => 'datetime', - 'price' => 'int', - 'capacity' => 'int', - 'status' => 'int' - ]; + protected $casts = [ + 'airline_id' => 'int', + 'origin_airport_id' => 'int', + 'destination_airport_id' => 'int', + 'file_id' => 'int', + 'departure_time' => 'datetime', + 'price' => 'int', + 'capacity' => 'int', + 'status' => FlightStatus::class, + 'trip_type' => FlightTripType::class + ]; - protected $fillable = [ - 'airline_id', - 'origin_airport_id', - 'destination_airport_id', - 'flight_number', - 'departure_time', - 'price', - 'capacity', - 'status' - ]; + protected $fillable = [ + 'airline_id', + 'origin_airport_id', + 'destination_airport_id', + 'file_id', + 'flight_number', + 'departure_time', + 'price', + 'capacity', + 'status', + 'trip_type' + ]; - public function airline() - { - return $this->belongsTo(Airline::class); - } + public function airline() + { + return $this->belongsTo(Airline::class); + } - public function airport() - { - return $this->belongsTo(Airport::class, 'destination_airport_id'); - } + public function origin_airport() + { + return $this->belongsTo(Airport::class, 'origin_airport_id'); + } - public function bookings() - { - return $this->hasMany(Booking::class); - } + public function airport() + { + return $this->belongsTo(Airport::class, 'destination_airport_id'); + } - public function tours() - { - return $this->hasMany(Tour::class, 'file_id'); - } + public function file() + { + return $this->belongsTo(File::class); + } + + public function bookings() + { + return $this->hasMany(Booking::class); + } + + public function tours() + { + return $this->hasMany(Tour::class, 'file_id'); + } }