Added Notifications

This commit is contained in:
2026-05-18 14:31:53 +10:00
parent 1d5b9f340f
commit 10b5b6a5c9
18 changed files with 545 additions and 166 deletions
+20
View File
@@ -41,6 +41,26 @@ class User extends Authenticatable
return $this->hasMany(UserAchievement::class);
}
public function unlockedAchievements(): HasMany
{
return $this->achievements()
->join('achievements', 'achievements.id', '=', 'user_achievements.achievement_id')
->where(function ($query) {
$query
// Non-progressive achievements: always count
->where(function ($q) {
$q->where('achievements.progressive', false)
->orWhereNull('achievements.progressive');
})
// Progressive achievements: only if progress >= threshold
->orWhere(function ($q) {
$q->where('achievements.progressive', true)
->whereNotNull('achievements.threshold')
->whereColumn('user_achievements.progress', '>=', 'achievements.threshold');
});
});
}
public function resolveRouteBinding($value, $field = null): ?User
{
return $this->where('name', 'ilike', $value)->firstOrFail();