diff --git a/app/Http/Controllers/FlightController.php b/app/Http/Controllers/FlightController.php index d39c0a1..7698a36 100644 --- a/app/Http/Controllers/FlightController.php +++ b/app/Http/Controllers/FlightController.php @@ -137,12 +137,12 @@ class FlightController extends Controller 'flight_class' => $flight->flightClass->toArray(), 'flight_reason' => $flight->flightReason->toArray(), 'airline_options' => $flight->airline - ? [['value' => $flight->airline->id, 'title' => $flight->airline->name]] + ? [['value' => $flight->airline->id, 'title' => $flight->airline->displayName()]] : [], - 'from_options' => [['value' => $flight->departureAirport->id, 'title' => $flight->departureAirport->name, 'country_code' => strtolower($flight->departureAirport->region->country->code)]], - 'to_options' => [['value' => $flight->arrivalAirport->id, 'title' => $flight->arrivalAirport->name, 'country_code' => strtolower($flight->arrivalAirport->region->country->code)]], + 'from_options' => [['value' => $flight->departureAirport->id, 'title' => $flight->departureAirport->displayName(), 'country_code' => strtolower($flight->departureAirport->region->country->code)]], + 'to_options' => [['value' => $flight->arrivalAirport->id, 'title' => $flight->arrivalAirport->displayName(), 'country_code' => strtolower($flight->arrivalAirport->region->country->code)]], 'aircraft_options' => $flight->aircraft - ? [['value' => $flight->aircraft->id, 'title' => $flight->aircraft->name]] + ? [['value' => $flight->aircraft->id, 'title' => $flight->aircraft->displayName()]] : [], ]; return Inertia::render('AddFlight', [ diff --git a/app/Http/Controllers/FlightImportController.php b/app/Http/Controllers/FlightImportController.php index a79f10f..3f2ad5e 100644 --- a/app/Http/Controllers/FlightImportController.php +++ b/app/Http/Controllers/FlightImportController.php @@ -55,9 +55,9 @@ class FlightImportController extends Controller ->orderBy('model_full_name') ->limit(10) ->get(['id', 'manufacturer_code', 'model_full_name', 'designator']) - ->map(fn($a) => [ - 'value' => $a->id, - 'title' => "{$a->manufacturer_code} {$a->model_full_name} ({$a->designator})", + ->map(fn($aircraft) => [ + 'value' => $aircraft->id, + 'title' => $aircraft->displayName(), ]) ->values() ->toArray(); @@ -92,10 +92,10 @@ class FlightImportController extends Controller ->limit(10) ->orderBy('id') ->get(['id', 'name', 'municipality', 'iata_code', 'icao_code', 'region_id']) - ->map(fn($a) => [ - 'value' => $a->id, - 'title' => "{$a->municipality} / {$a->name} ({$a->iata_code}/{$a->icao_code})", - 'country_code' => strtolower($a?->region->country->code ?? ''), + ->map(fn($airport) => [ + 'value' => $airport->id, + 'title' => $airport->displayName(), + 'country_code' => strtolower($airport?->region->country->code ?? ''), ]) ->values() ->toArray(); @@ -129,9 +129,9 @@ class FlightImportController extends Controller ->orderByDesc('active') ->limit(10) ->get(['id', 'name', 'IATA_code', 'ICAO_code']) - ->map(fn($a) => [ - 'value' => $a->id, - 'title' => "{$a->name} ({$a->IATA_code}/{$a->ICAO_code})", + ->map(fn($airline) => [ + 'value' => $airline->id, + 'title' => $airline->displayName(), ]) ->values() ->toArray(); diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 1d57405..326626d 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -27,9 +27,9 @@ class SearchController extends Controller }) ->limit(50) ->get(['id', 'name', 'IATA_code', 'ICAO_code', 'logo']) - ->map(fn($a) => [ - 'value' => $a->id, - 'title' => "{$a->name} ({$a->IATA_code}/{$a->ICAO_code})", + ->map(fn($airline) => [ + 'value' => $airline->id, + 'title' => $airline->displayName(), ]) ->values(); } @@ -45,9 +45,9 @@ class SearchController extends Controller ->limit(200) ->orderBy('id', 'asc') ->get(['id', 'manufacturer_code', 'model_full_name', 'designator']) - ->map(fn($a) => [ - 'value' => $a->id, - 'title' => "{$a->manufacturer_code} {$a->model_full_name} ({$a->designator})", + ->map(fn($aircraft) => [ + 'value' => $aircraft->id, + 'title' => $aircraft->displayName(), ]) ->values(); } @@ -74,10 +74,10 @@ class SearchController extends Controller ", [$q, $q])) ->limit(15) ->get(['id', 'name', 'municipality', 'iata_code', 'icao_code', 'region_id']) - ->map(fn($a) => [ - 'value' => $a->id, - 'title' => "{$a->municipality} / {$a->name} ({$a->iata_code}/{$a->icao_code})", - 'country_code' => strtolower($a->region->country->code), + ->map(fn($airport) => [ + 'value' => $airport->id, + 'title' => $airport->displayName(), + 'country_code' => strtolower($airport->region->country->code), ]) ->values(); } diff --git a/app/Models/Aircraft.php b/app/Models/Aircraft.php index c1168bc..971ee22 100644 --- a/app/Models/Aircraft.php +++ b/app/Models/Aircraft.php @@ -19,4 +19,8 @@ class Aircraft extends Model protected $casts = [ 'engine_count' => 'integer', ]; + + public function displayName() : string{ + return "{$this->manufacturer_code} {$this->model_full_name} ({$this->designator})"; + } } diff --git a/app/Models/Airline.php b/app/Models/Airline.php index c67dbb0..2a92b5b 100644 --- a/app/Models/Airline.php +++ b/app/Models/Airline.php @@ -27,6 +27,10 @@ class Airline extends Model public $timestamps = false; + public function displayName() : string { + return "{$this->name} ({$this->IATA_code}/{$this->ICAO_code})"; + } + public function country(): BelongsTo { return $this->belongsTo(Country::class); diff --git a/app/Models/Airport.php b/app/Models/Airport.php index 98a129a..e219ce8 100644 --- a/app/Models/Airport.php +++ b/app/Models/Airport.php @@ -27,6 +27,10 @@ class Airport extends Model 'elevation_ft' => 'integer', ]; + public function displayName() : string{ + return "{$this->municipality} / {$this->name} ({$this->iata_code}/{$this->icao_code})"; + } + public function region(): BelongsTo { return $this->belongsTo(Region::class); diff --git a/database/migrations/2026_04_18_023946_add_more_airlines.php b/database/migrations/2026_04_18_023946_add_more_airlines.php index 88fa2f3..ab617a7 100644 --- a/database/migrations/2026_04_18_023946_add_more_airlines.php +++ b/database/migrations/2026_04_18_023946_add_more_airlines.php @@ -1,17 +1,82 @@ firstOrFail(); + + $logo = $logo ?? $iataCode . '.png'; + + Airline::create([ + 'IATA_code' => $iataCode, + 'ICAO_code' => $icaoCode, + 'name' => $name, + 'internal_name' => $internalName, + 'active' => $active, + 'logo' => $logo, + 'country_id' => $country->id, + ]); + + return $this; + } + + + function createAirlines(): void{ + $this + ->createAirline(name: 'Horizontal Falls Seaplane Adventures', active: true, countryCode: 'AU', logo: 'horizontal-falls-seaplane-adventures.png', internalName: 'horizontal-falls-seaplane-adventures') + ->createAirline(name: 'Pineapple Air', active: true, countryCode: 'BS', icaoCode: 'PNP', logo: 'pineapple-air.png', internalName: 'pineapple-air') + ->createAirline(name: 'ATA Airlines', active: true, countryCode: 'IR', iataCode: 'I3', icaoCode: 'TBZ', logo: 'ata-airlines.png', internalName: 'ata-airlines') + ->createAirline(name: 'Chabahar Air', active: true, countryCode: 'IR', iataCode: null, icaoCode: 'IRU', logo: 'chabahar-airlines.png', internalName: 'chabahar-airlines') + ->createAirline(name: 'Kish Air', active: true, countryCode: 'IR', iataCode: 'Y9', icaoCode: 'KIS', logo: 'kish-air.png', internalName: 'kish-air') + ->createAirline(name: 'Meraj Airlines', active: true, countryCode: 'IR', iataCode: 'JI', icaoCode: 'MRJ', logo: 'meraj-airlines.png', internalName: 'meraj-airlines') + ->createAirline(name: 'Qazaq Air', active: false, countryCode: 'KZ', iataCode: 'IQ', icaoCode: 'QAZ', logo: 'qazaq-air.png', internalName: 'qazaq-air') + ->createAirline(name: 'Raimon Airways', active: true, countryCode: 'IR', iataCode: null, icaoCode: 'RAI', logo: 'raimon-airways.png', internalName: 'raimon-airways') + ->createAirline(name: 'Saha Airlines', active: true, countryCode: 'IR', iataCode: null, icaoCode: 'IRZ', logo: 'saha-airlines.png', internalName: 'saha-airlines') + ->createAirline(name: 'Yazd Airways', active: true, countryCode: 'IR', iataCode: null, icaoCode: 'DZD', logo: 'yazd-airways.png', internalName: 'yazd-airways') + ->createAirline(name: 'Zagros Airlines', active: true, countryCode: 'IR', iataCode: 'ZO', icaoCode: 'IZG', logo: 'zagros-airlines.png', internalName: 'zagros-airlines') + ->createAirline(name: 'Taban Airlines', active: true, countryCode: 'IR', iataCode: null, icaoCode: 'TBN', logo: 'taban-airlines.png', internalName: 'taban-airlines') + ->createAirline(name: 'Maun Helicopter Horizons', active: true, countryCode: 'BW', iataCode: null, icaoCode: null, logo: 'blank.png', internalName: 'maun-helicopter-horizons') + ->createAirline(name: 'Pacific Mission Aviation', active: true, countryCode: 'PW', iataCode: null, icaoCode: null, logo: 'pacific-mission-aviation.png', internalName: 'pacific-mission-aviation') + ->createAirline(name: 'Jetstar Pacific', active: false, countryCode: 'VN', iataCode: 'BL', icaoCode: 'PIC', logo: 'jq.png', internalName: 'jetstar-pacific') + ->createAirline(name: 'Jetsmart', active: true, countryCode: 'CL', iataCode: 'JA', icaoCode: 'JAT', logo: 'ja.png', internalName: 'jetsmart') + ->createAirline(name: 'Jetsmart Peru', active: true, countryCode: 'PE', iataCode: 'JZ', icaoCode: 'JAP', logo: 'jz.png', internalName: 'jetsmart-peru') + ->createAirline(name: 'Jetsmart Argentina', active: true, countryCode: 'AR', iataCode: 'WJ', icaoCode: 'JES', logo: 'wj.png', internalName: 'jetsmart-argentina') + ->createAirline(name: 'Jetsmart Colombia', active: true, countryCode: 'CO', iataCode: 'J6', icaoCode: 'JEC', logo: 'j6.png', internalName: 'jetsmart-colombia') + ; + } + + public function up(): void { - // + DB::table('airlines')->whereNull('logo')->update(['logo' => 'blank.png']); + + Schema::table('airlines', function (Blueprint $table) { + $table->string('logo')->default('blank.png')->nullable(false)->change(); + }); + + Airline::where('name', 'AVIANCA')->update(['name' => 'Avianca']); + + $this->createAirlines(); + + UserFlight::where('seat_type_id', null)->update(['seat_type_id' => 0]); + UserFlight::where('flight_reason_id', null)->update(['flight_reason_id' => 0]); + UserFlight::where('flight_class_id', null)->update(['flight_class_id' => 0]); + } /** diff --git a/resources/js/Pages/AddFlight.vue b/resources/js/Pages/AddFlight.vue index 72a85ad..7e97431 100644 --- a/resources/js/Pages/AddFlight.vue +++ b/resources/js/Pages/AddFlight.vue @@ -298,6 +298,7 @@ const arrivalMax = computed(() => { { /> - @@ -399,7 +399,6 @@ const arrivalMax = computed(() => { /> -