Added achievement data

This commit is contained in:
2026-05-09 18:05:12 +10:00
parent 7e3af37a46
commit f2b2eaaabe
183 changed files with 578 additions and 5 deletions
@@ -0,0 +1,41 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AdminToolsController extends Controller
{
function missingLiveries(){
/* $existingFiles = collect(glob(public_path('img/liveries/generated/*')))
->map(fn ($path) => pathinfo($path, PATHINFO_FILENAME))
->toArray();*/
$existingFiles = collect(glob('C:\\Users\\josh\\WebstormProjects\\Watermark-Remover\\images\\liveries_processed\\*'))
->map(fn ($path) => pathinfo($path, PATHINFO_FILENAME))
->toArray();
$combos = \App\Models\UserFlight::with(['aircraft', 'airline'])
->select('airline_id', 'aircraft_id')
->whereNotNull('airline_id')
->whereNotNull('aircraft_id')
->distinct()
->get()
->filter(fn ($flight) => $flight->aircraft && $flight->airline)
->map(fn ($flight) => [
'airline_name' => $flight->airline->name,
'aircraft_display_name' => $flight->aircraft->display_name,
'filename' => $flight->airline->internal_name . '_' . $flight->aircraft->designator,
])
->filter(fn ($combo) => !in_array($combo['filename'], $existingFiles))
->values();
return response()->json([
'count' => $combos->count(),
'liveries' => $combos,
]);
}
}
@@ -40,4 +40,19 @@ class FlightProfileController extends Controller
{
return $this->departureBoard($user);
}
public function flight(User $user, UserFlight $userFlight)
{
if($userFlight->user_id !== $user->id){
abort(404);
}
return Inertia::render('UserFlight', [
'flightCount' => $user->flights()->count(),
'flight' => $userFlight->snapshot($userFlight->id),
'user' => $user,
'isFollowing' => auth()->check() && auth()->user()->isFollowing($user),
]);
}
}
+20 -1
View File
@@ -45,6 +45,7 @@ class UserFlight extends Model
'duration',
'duration_display',
'distance',
'livery_url',
];
public function calculateGreatCircleDistance(): float{
@@ -156,7 +157,8 @@ class UserFlight extends Model
return !$this->isDomestic();
}
public static function snapshot($userFlightId){
public static function snapshot($userFlightId): array
{
return UserFlight::with([
'departureAirport',
'departureAirport.region.country',
@@ -218,4 +220,21 @@ class UserFlight extends Model
{
return $this->belongsTo(FlightReason::class);
}
public function liveryUrl(): Attribute{
return Attribute::make(
get: function () {
if($this->airline) {
$fileName = "{$this->airline->internal_name}_{$this->aircraft->designator}.png";
$file = public_path("img/liveries/generated/$fileName");
if (file_exists($file)) {
return "/img/liveries/generated/$fileName";
}
}
return null;
}
);
}
}