trangshopeeaffiliate/app/Services/SessionManagerService.php
2026-07-11 22:56:22 +07:00

50 lines
994 B
PHP

<?php
namespace App\Services;
use App\Models\CookieSession;
class SessionManagerService
{
/**
* Get the next available active session based on priority and last_used_at.
*/
public function getAvailableSession(): ?CookieSession
{
return CookieSession::active()
->orderByDesc('priority')
->orderBy('last_used_at', 'asc')
->first();
}
/**
* Mark a session as used.
*/
public function markAsUsed(CookieSession $session): void
{
$session->update([
'last_used_at' => now(),
]);
}
/**
* Mark a session as error.
*/
public function markAsError(CookieSession $session): void
{
$session->update([
'status' => 'error',
]);
}
/**
* Disable a session.
*/
public function disableSession(CookieSession $session): void
{
$session->update([
'status' => 'disabled',
]);
}
}