Commit ef901bf9 authored by Mahmoud Aglan's avatar Mahmoud Aglan

fix: use correct column names from profiles table

- last_seen → last_seen_at (explains why stats showed 0)
- country → country_code
- Updated searchPlayers select and individual view JS
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 06a90310
...@@ -188,8 +188,8 @@ class NotificationsController ...@@ -188,8 +188,8 @@ class NotificationsController
} }
$queryParams = [ $queryParams = [
'select' => 'id,display_name,level,last_seen,country,games_played', 'select' => 'id,display_name,level,last_seen_at,country_code,games_played',
'order' => 'last_seen.desc', 'order' => 'last_seen_at.desc.nullslast',
'limit' => 20, 'limit' => 20,
]; ];
...@@ -493,7 +493,7 @@ class NotificationsController ...@@ -493,7 +493,7 @@ class NotificationsController
} }
if (!empty($filters['country'])) { if (!empty($filters['country'])) {
$queryParams['country'] = "eq.{$filters['country']}"; $queryParams['country_code'] = "eq.{$filters['country']}";
} }
if (!empty($filters['activity'])) { if (!empty($filters['activity'])) {
...@@ -509,7 +509,7 @@ class NotificationsController ...@@ -509,7 +509,7 @@ class NotificationsController
}; };
if ($dateStr) { if ($dateStr) {
$op = str_starts_with($filters['activity'], 'active') ? 'gte' : 'lte'; $op = str_starts_with($filters['activity'], 'active') ? 'gte' : 'lte';
$queryParams['last_seen'] = "{$op}.{$dateStr}"; $queryParams['last_seen_at'] = "{$op}.{$dateStr}";
} }
} }
...@@ -535,9 +535,9 @@ class NotificationsController ...@@ -535,9 +535,9 @@ class NotificationsController
return [ return [
'total' => $total, 'total' => $total,
'active_today' => $this->db->count('profiles', ['last_seen' => "gte.{$today}"]), 'active_today' => $this->db->count('profiles', ['last_seen_at' => "gte.{$today}"]),
'active_week' => $this->db->count('profiles', ['last_seen' => "gte.{$week}"]), 'active_week' => $this->db->count('profiles', ['last_seen_at' => "gte.{$week}"]),
'active_month' => $this->db->count('profiles', ['last_seen' => "gte.{$month}"]), 'active_month' => $this->db->count('profiles', ['last_seen_at' => "gte.{$month}"]),
]; ];
} }
} }
...@@ -82,7 +82,7 @@ searchInput.addEventListener('input',function(){ ...@@ -82,7 +82,7 @@ searchInput.addEventListener('input',function(){
try{ try{
const r=await fetch('/api/notifications/search-players?q='+encodeURIComponent(q));const d=await r.json(); const r=await fetch('/api/notifications/search-players?q='+encodeURIComponent(q));const d=await r.json();
if(d.players&&d.players.length>0){ if(d.players&&d.players.length>0){
resultsDiv.innerHTML=d.players.map(p=>`<div onclick="selectPlayer('${p.id}','${(p.display_name||'').replace(/'/g,"\\'")}','${p.level||0}','${p.games_played||0}','${p.country||''}')" style="padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);" onmouseover="this.style.background='var(--bg-elevated)'" onmouseout="this.style.background=''"><div class="font-bold text-sm">${p.display_name||'بدون اسم'}</div><div class="text-xs text-secondary">${p.id.substring(0,8)}... • Lv.${p.level||0}${p.games_played||0} لعبة${p.country?' • '+p.country:''}</div></div>`).join(''); resultsDiv.innerHTML=d.players.map(p=>`<div onclick="selectPlayer('${p.id}','${(p.display_name||'').replace(/'/g,"\\'")}','${p.level||0}','${p.games_played||0}','${p.country_code||''}')" style="padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);" onmouseover="this.style.background='var(--bg-elevated)'" onmouseout="this.style.background=''"><div class="font-bold text-sm">${p.display_name||'بدون اسم'}</div><div class="text-xs text-secondary">${p.id.substring(0,8)}... • Lv.${p.level||0}${p.games_played||0} لعبة${p.country_code?' • '+p.country_code:''}</div></div>`).join('');
resultsDiv.style.display='block'; resultsDiv.style.display='block';
}else{resultsDiv.innerHTML='<div style="padding:14px;text-align:center;" class="text-secondary text-sm">لم يتم العثور على لاعبين</div>';resultsDiv.style.display='block';} }else{resultsDiv.innerHTML='<div style="padding:14px;text-align:center;" class="text-secondary text-sm">لم يتم العثور على لاعبين</div>';resultsDiv.style.display='block';}
}catch(e){resultsDiv.style.display='none';} }catch(e){resultsDiv.style.display='none';}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment