Add more airlines and fix edit bugs
This commit is contained in:
@@ -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', [
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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})";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -1,17 +1,82 @@
|
||||
<?php
|
||||
|
||||
use App\Models\Airline;
|
||||
use App\Models\Country;
|
||||
use App\Models\UserFlight;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function createAirline(
|
||||
string $name,
|
||||
bool $active,
|
||||
string $countryCode,
|
||||
?string $iataCode = null,
|
||||
?string $icaoCode = null,
|
||||
?string $logo = null,
|
||||
string $internalName = null,
|
||||
): self {
|
||||
$country = Country::where('code', $countryCode)->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]);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -298,6 +298,7 @@ const arrivalMax = computed(() => {
|
||||
<v-row>
|
||||
<v-col cols="12">
|
||||
<AircraftSearchBox
|
||||
:key="`aircraft-${lookupKey}`"
|
||||
v-model="form.aircraft"
|
||||
:prefilled-options="aircraftOptionsData"
|
||||
:error-messages="submitForm.errors.aircraft_id"
|
||||
@@ -305,7 +306,6 @@ const arrivalMax = computed(() => {
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- ── Registration + Flight class ────────────────────────── -->
|
||||
<v-row>
|
||||
<v-col cols="12" md="6">
|
||||
@@ -399,7 +399,6 @@ const arrivalMax = computed(() => {
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- ── Submit ─────────────────────────────────────────────── -->
|
||||
<v-row>
|
||||
<v-col cols="12">
|
||||
|
||||
Reference in New Issue
Block a user