Files
Xboard/app/Observers/UserObserver.php
xboard bcfda44730 fix: resolve traffic reset time generation and refactor reset logic
- Add fix-null mode to ResetTraffic command
- Refactor reset logic for better separation of concerns
- Update migration to reuse fix functionality
2025-07-19 14:22:01 +08:00

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();
});
}
}
}