mirror of
https://github.com/lkddi/Xboard.git
synced 2026-04-03 18:40:52 +08:00
- Add fix-null mode to ResetTraffic command - Refactor reset logic for better separation of concerns - Update migration to reuse fix functionality
26 lines
582 B
PHP
26 lines
582 B
PHP
<?php
|
|
|
|
namespace App\Observers;
|
|
|
|
use App\Models\User;
|
|
use App\Services\TrafficResetService;
|
|
|
|
class UserObserver
|
|
{
|
|
public function __construct(
|
|
private readonly TrafficResetService $trafficResetService
|
|
) {
|
|
}
|
|
|
|
public function updated(User $user): void
|
|
{
|
|
if ($user->isDirty(['plan_id', 'expired_at'])) {
|
|
$user->refresh();
|
|
User::withoutEvents(function () use ($user) {
|
|
$nextResetTime = $this->trafficResetService->calculateNextResetTime($user);
|
|
$user->next_reset_at = $nextResetTime?->timestamp;
|
|
$user->save();
|
|
});
|
|
}
|
|
}
|
|
} |