dealhub/app/Actions/AddRecentSearchAction.php
kusowl 985dd967e4 feature(search deals)
- make deals reachable
- add recent search feature
- add animation in profile menu
- refactor blade markup of explore page
2026-01-20 18:43:13 +05:30

31 lines
882 B
PHP

<?php
namespace App\Actions;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
final readonly class AddRecentSearchAction
{
public function execute(User $user, array $data): void
{
try {
DB::transaction(function () use ($user, $data) {
$user->recentSearches()->updateOrcreate($data);
$recentSearchCount = $user->recentSearches()->count();
if ($recentSearchCount > 5) {
$user->recentSearches()->oldest()->limit(1)->delete();
}
});
} catch (\Throwable $e) {
Log::error('Error adding recent search',
[
'user_id' => $user->id,
'error' => $e->getMessage(),
'trace' => $e->getTrace(),
]);
}
}
}