diff --git a/app/Models/Flight.php b/app/Models/Flight.php index 262b2d6..4d89020 100644 --- a/app/Models/Flight.php +++ b/app/Models/Flight.php @@ -1,32 +1,27 @@ 'int', + 'travel_type_id' => 'integer', + 'departure_date' => 'date', 'arrival_date' => 'date', + 'departure_time' => 'datetime', 'arrival_time' => 'datetime', + 'price' => 'decimal:2', - 'capacity' => 'int', - 'status' => 'int', + + 'capacity' => 'integer', + 'status' => 'integer', ]; protected $fillable = [ @@ -45,135 +40,53 @@ class Flight extends Model 'status', ]; - // مبدا پرواز - public function origin() - { - return $this->belongsTo(Airport::class, 'origin_airport_id'); - } - // مقصد پرواز - public function destination() - { - return $this->belongsTo(Airport::class, 'destination_airport_id'); - } - /* ------------------------- روابط (Relations) ------------------------- */ - /** - * نوع سفر (داخلی/خارجی/چارتر) مرتبط با این پرواز - */ public function travelType() { - return $this->belongsTo(TravelType::class); + return $this->belongsTo( + TravelType::class, + 'travel_type_id' + ); } - /** - * تورهای مرتبط با این پرواز - */ + public function tours() { - return $this->belongsToMany(Tour::class, 'tour_flights') + return $this->belongsToMany( + Tour::class, + 'tour_flights' + ) ->withPivot('id') ->withTimestamps(); } - /* --------------------------- Helper ها ------------------------------ */ public function statusLabel(): string { - return $this->status == 1 ? 'فعال' : 'غیرفعال'; + return (int)$this->status === 1 + ? 'فعال' + : 'غیرفعال'; } + public function isActive(): bool { return (int)$this->status === 1; } - /** - * اسکوپ برای پروازهای فعال - */ + + + #[Scope] public function scopeActive($query) { return $query->where('status', 1); } + public function getRouteKeyName(): string { return 'id'; } } - -// -///** -// * Created by Reliese Model. -// */ -// -//namespace App\Models; -// -//use Carbon\Carbon; -//use Illuminate\Database\Eloquent\Collection; -//use Illuminate\Database\Eloquent\Model; -// -///** -// * Class Flight -// * -// * @property int $id -// * @property int $travel_type_id -// * @property string $flight_number -// * @property string $airline_name -// * @property string $origin -// * @property string $destination -// * @property Carbon $departure_date -// * @property Carbon $departure_time -// * @property Carbon $arrival_date -// * @property Carbon $arrival_time -// * @property string $duration -// * @property float $price -// * @property int $capacity -// * @property int $status -// * @property Carbon $created_at -// * @property Carbon $updated_at -// * -// * @property Collection|Tour[] $tours -// * -// * @package App\Models -// */ -//class Flight extends Model -//{ -// protected $table = 'flights'; -// public static $snakeAttributes = false; -// -// protected $casts = [ -// 'travel_type_id' => 'int', -// 'departure_date' => 'datetime', -// 'departure_time' => 'datetime', -// 'arrival_date' => 'datetime', -// 'arrival_time' => 'datetime', -// 'price' => 'float', -// 'capacity' => 'int', -// 'status' => 'int' -// ]; -// -// protected $fillable = [ -// 'travel_type_id', -// 'flight_number', -// 'airline_name', -// 'origin', -// 'destination', -// 'departure_date', -// 'departure_time', -// 'arrival_date', -// 'arrival_time', -// 'duration', -// 'price', -// 'capacity', -// 'status' -// ]; -// -// public function tours() -// { -// return $this->belongsToMany(Tour::class, 'tour_flights') -// ->withPivot('id') -// ->withTimestamps(); -// } -//} diff --git a/resources/views/components/flight.blade.php b/resources/views/components/flight.blade.php index d420e8d..6818fad 100644 --- a/resources/views/components/flight.blade.php +++ b/resources/views/components/flight.blade.php @@ -1,3 +1,94 @@ -
- +
+ +
+ +
+ +
+ + +
+ + + +
+ + +
+ +

+ {{ $departure }} +

+ +

+ {{ $from }} +

+ +
+ + +
+ + + +

+ پرواز مستقیم +

+ +
+ + +
+ +

+ {{ $arrival }} +

+ +

+ {{ $to }} +

+ +
+ + +
+ + + {{ $price }} + + + + تومان + + +
+ + + + + +
+ +
+ +
+