Files
FlightsAPI/app/DTOs/FlightStatData.php
T
2026-05-10 22:42:37 +10:00

34 lines
1.3 KiB
PHP

<?php
namespace App\DTOs;
use Carbon\Carbon;
readonly class FlightStatData
{
public function __construct(
public ?string $aircraft_registration,
public ?Carbon $estimated_departure_utc,
public ?Carbon $estimated_arrival_utc,
public ?string $equipment_iata,
public ?string $departure_iata,
public ?string $arrival_iata,
) {}
public static function fromApiResponse(array $flightData): self
{
return new self(
aircraft_registration: $flightData['positional']['flexTrack']['tailNumber'] ?? null,
estimated_departure_utc: isset($flightData['schedule']['estimatedActualDepartureUTC'])
? Carbon::parse($flightData['schedule']['estimatedActualDepartureUTC'])
: null,
estimated_arrival_utc: isset($flightData['schedule']['estimatedActualArrivalUTC'])
? Carbon::parse($flightData['schedule']['estimatedActualArrivalUTC'])
: null,
equipment_iata: $flightData['additionalFlightInfo']['equipment']['iata'] ?? null,
departure_iata: $flightData['departureAirport']['iata'] ?? null,
arrival_iata: $flightData['arrivalAirport']['iata'] ?? null,
);
}
}