39 lines
1.0 KiB
PHP
39 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Models\UserAction;
|
|
use App\Models\UserFlight;
|
|
use Illuminate\Console\Attributes\Description;
|
|
use Illuminate\Console\Attributes\Signature;
|
|
use Illuminate\Console\Command;
|
|
|
|
#[Signature('app:flight-feed-update')]
|
|
#[Description('Command description')]
|
|
class FlightFeedUpdate extends Command
|
|
{
|
|
public function handle()
|
|
{
|
|
$time = now('UTC');
|
|
|
|
$this->logFlightActions('flight_departing', UserFlight::where('departure_date', $time)->get()->toArray());
|
|
$this->logFlightActions('flight_arriving', UserFlight::where('arrival_date', $time)->get()->toArray());
|
|
}
|
|
|
|
/**
|
|
* @param string $type
|
|
* @param UserFlight[] $flights
|
|
* @return void
|
|
*/
|
|
private function logFlightActions(string $type, array $flights): void
|
|
{
|
|
foreach ($flights as $flight) {
|
|
UserAction::create([
|
|
'user_id' => $flight->user_id,
|
|
'type' => $type,
|
|
'data' => $flight->snapshot($flight->id),
|
|
]);
|
|
}
|
|
}
|
|
}
|