Added achievement data
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Console\Commands;
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
use App\Models\UserFlight;
|
use App\Models\UserFlight;
|
||||||
|
use Carbon\Carbon;
|
||||||
use Illuminate\Console\Attributes\Description;
|
use Illuminate\Console\Attributes\Description;
|
||||||
use Illuminate\Console\Attributes\Signature;
|
use Illuminate\Console\Attributes\Signature;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
@@ -31,7 +32,6 @@ class UpdateDepartedFlights extends Command
|
|||||||
$this->info("Found {$userFlights->count()} flights.");
|
$this->info("Found {$userFlights->count()} flights.");
|
||||||
|
|
||||||
foreach ($userFlights as $flight) {
|
foreach ($userFlights as $flight) {
|
||||||
// Split "QF22" into ["QF", "22"]
|
|
||||||
preg_match('/^([A-Z]{2,3})(\d+)$/i', $flight->flight_number, $matches);
|
preg_match('/^([A-Z]{2,3})(\d+)$/i', $flight->flight_number, $matches);
|
||||||
|
|
||||||
if (empty($matches)) {
|
if (empty($matches)) {
|
||||||
@@ -65,11 +65,40 @@ class UpdateDepartedFlights extends Command
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$tailNumber = $flightData['positional']['flexTrack']['tailNumber'] ?? null;
|
$tailNumber = $flightData['positional']['flexTrack']['tailNumber'] ?? null;
|
||||||
$estimatedDepartureUtc = $flightData['schedule']['estimatedActualDepartureUTC'] ?? null;
|
$estimatedDepartureUtc = $flightData['schedule']['estimatedActualDepartureUTC'] ?? null;
|
||||||
$estimatedArrivalUtc = $flightData['schedule']['estimatedActualArrivalUTC'] ?? null;
|
$estimatedArrivalUtc = $flightData['schedule']['estimatedActualArrivalUTC'] ?? null;
|
||||||
$equipmentCode = $flightData['additionalFlightInfo']['equipment']['iata'] ?? null;
|
$equipmentCode = $flightData['additionalFlightInfo']['equipment']['iata'] ?? null;
|
||||||
|
|
||||||
|
$apiDepartureIata = $data['data']['departureAirport']['iata'] ?? null;
|
||||||
|
$apiArrivalIata = $data['data']['arrivalAirport']['iata'] ?? null;
|
||||||
|
|
||||||
|
if ($apiDepartureIata !== $flight->departureAirport->iata_code ||
|
||||||
|
$apiArrivalIata !== $flight->arrivalAirport->iata_code) {
|
||||||
|
$this->warn("Airport mismatch for {$airlineCode}{$flightNumber} — API: {$apiDepartureIata}→{$apiArrivalIata}, expected: {$flight->departureAirport->iata_code}→{$flight->arrivalAirport->iata_code}");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$updates = [];
|
||||||
|
|
||||||
|
if ($tailNumber && $tailNumber !== $flight->aircraft_registration) {
|
||||||
|
$updates['aircraft_registration'] = $tailNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($estimatedDepartureUtc && Carbon::parse($estimatedDepartureUtc)->ne($flight->departure_date)) {
|
||||||
|
$updates['departure_date'] = Carbon::parse($estimatedDepartureUtc);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($estimatedArrivalUtc && Carbon::parse($estimatedArrivalUtc)->ne($flight->arrival_date)) {
|
||||||
|
$updates['arrival_date'] = Carbon::parse($estimatedArrivalUtc);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($updates)) {
|
||||||
|
$flight->update($updates);
|
||||||
|
$this->info("Updated flight {$airlineCode}{$flightNumber}: " . implode(', ', array_keys($updates)));
|
||||||
|
}
|
||||||
|
|
||||||
$this->info("Flight {$airlineCode}{$flightNumber} — Tail: {$tailNumber}, Equipment: {$equipmentCode}");
|
$this->info("Flight {$airlineCode}{$flightNumber} — Tail: {$tailNumber}, Equipment: {$equipmentCode}");
|
||||||
$this->info("Departure: {$estimatedDepartureUtc} | Arrival: {$estimatedArrivalUtc}");
|
$this->info("Departure: {$estimatedDepartureUtc} | Arrival: {$estimatedArrivalUtc}");
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ const props = defineProps<{
|
|||||||
flightId?: number | null
|
flightId?: number | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
console.log(props.user)
|
|
||||||
|
|
||||||
function editRoute(id: number) {
|
function editRoute(id: number) {
|
||||||
return route('flights.edit', { flight: id })
|
return route('flights.edit', { flight: id })
|
||||||
@@ -87,13 +86,12 @@ today.setHours(0, 0, 0, 0)
|
|||||||
const isSorting = computed(() => sortBy.value.length > 0)
|
const isSorting = computed(() => sortBy.value.length > 0)
|
||||||
|
|
||||||
const upcomingFlights = computed(() =>
|
const upcomingFlights = computed(() =>
|
||||||
props.flightStats.upcomingFlights.value
|
[...props.flightStats.upcomingFlights.value]
|
||||||
.sort((a, b) => new Date(a.departure_date).getTime() - new Date(b.departure_date).getTime())
|
.sort((a, b) => new Date(a.departure_date).getTime() - new Date(b.departure_date).getTime())
|
||||||
)
|
)
|
||||||
|
|
||||||
const departedFlights = computed(() =>
|
const departedFlights = computed(() =>
|
||||||
props.flightStats.pastFlights.value
|
[...props.flightStats.pastFlights.value]
|
||||||
.filter(f => new Date(f.departure_date) < today)
|
|
||||||
.sort((a, b) => new Date(b.departure_date).getTime() - new Date(a.departure_date).getTime())
|
.sort((a, b) => new Date(b.departure_date).getTime() - new Date(a.departure_date).getTime())
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user