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(() => {
/>
-