v1 Release
This commit is contained in:
+34
-17
@@ -55,11 +55,12 @@ class UserFlight extends Model
|
||||
'duration',
|
||||
'duration_display',
|
||||
'distance',
|
||||
'livery_url',
|
||||
'livery',
|
||||
'scope',
|
||||
'range',
|
||||
'region_range',
|
||||
'class_seat_combined'
|
||||
'class_seat_combined',
|
||||
'other_users_on_flight'
|
||||
];
|
||||
|
||||
protected static function booted(): void
|
||||
@@ -207,19 +208,23 @@ class UserFlight extends Model
|
||||
return !$this->isDomestic();
|
||||
}
|
||||
|
||||
public function otherUsersOnFlight(): Collection
|
||||
protected function otherUsersOnFlight(): Attribute
|
||||
{
|
||||
return UserFlight::where('user_id', '!=', $this->user_id)
|
||||
->where('departure_airport_id', $this->departure_airport_id)
|
||||
->where('arrival_airport_id', $this->arrival_airport_id)
|
||||
->where('flight_number', $this->flight_number)
|
||||
->where('airline_id', $this->airline_id)
|
||||
->whereRaw('DATE(departure_date AT TIME ZONE \'UTC\') = ?', [
|
||||
Carbon::parse($this->departure_date)->utc()->toDateString()
|
||||
])
|
||||
->with('user')
|
||||
->get()
|
||||
->pluck('user.name');
|
||||
return Attribute::make(
|
||||
get: function () {
|
||||
return once(fn() => UserFlight::where('user_id', '!=', $this->user_id)
|
||||
->where('departure_airport_id', $this->departure_airport_id)
|
||||
->where('arrival_airport_id', $this->arrival_airport_id)
|
||||
->where('flight_number', $this->flight_number)
|
||||
->where('airline_id', $this->airline_id)
|
||||
->whereRaw('DATE(departure_date AT TIME ZONE \'UTC\') = ?', [
|
||||
Carbon::parse($this->departure_date)->utc()->toDateString()
|
||||
])
|
||||
->with('user')
|
||||
->get()
|
||||
->pluck('user.name'));
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public static function snapshot($userFlightId): array
|
||||
@@ -286,16 +291,19 @@ class UserFlight extends Model
|
||||
return $this->belongsTo(FlightReason::class);
|
||||
}
|
||||
|
||||
public function liveryUrl(): Attribute{
|
||||
public function livery(): Attribute{
|
||||
return Attribute::make(
|
||||
get: function () {
|
||||
|
||||
$user = auth()?->user();
|
||||
|
||||
$useAi = !$user || $user->getSetting('ai_liveries');
|
||||
|
||||
$apiUrl = config('app.logo_api_url');
|
||||
|
||||
$attribution = '';
|
||||
$attributionUrl = '';
|
||||
$isAi = false;
|
||||
|
||||
if (!$this->aircraft) {
|
||||
return null;
|
||||
}
|
||||
@@ -305,6 +313,8 @@ class UserFlight extends Model
|
||||
$path = "images/liveries/{$this->airline->internal_name}_{$this->aircraft->designator}.png";
|
||||
if (Storage::disk('local')->exists($path)) {
|
||||
$finalPath = $apiUrl."/airline/{$this->airline->internal_name}/livery/{$this->aircraft->designator}";
|
||||
$attribution = 'This image is AI generated and may not be an accurate representation of the aircraft.';
|
||||
$isAi = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,6 +322,8 @@ class UserFlight extends Model
|
||||
$path = "images/livery_templates/{$this->aircraft->designator}.png";
|
||||
if (Storage::disk('local')->exists($path)) {
|
||||
$finalPath = $apiUrl."/aircraft/{$this->aircraft->designator}/livery";
|
||||
$attribution = '© NoRebbo Blank Aircraft Templates';
|
||||
$attributionUrl = 'https://www.norebbo.com/category/aircraft-templates/';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -319,7 +331,12 @@ class UserFlight extends Model
|
||||
return null;
|
||||
}
|
||||
|
||||
return $finalPath;
|
||||
return [
|
||||
'image_url' => $finalPath,
|
||||
'attribution' => $attribution,
|
||||
'attribution_url' => $attributionUrl,
|
||||
'is_ai' => $isAi,
|
||||
];
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user