{{ t('gamification.user_detail.user_id') }} #{{ $route.params.id }}
{{ t('gamification.user_detail.load_error') }}
{{ t('gamification.user_detail.not_found') }}
{{ formatNumber(stats.total_xp) }}
{{ stats.current_level }}
{{ formatNumber(stats.total_points) }}
{{ formatNumber(stats.social_points) }}
{{ stats.penalty_points > 0 ? `-${stats.penalty_points}` : '0' }}
{{ stats.restriction_level > 0 ? restrictionLabel(stats.restriction_level) : t('gamification.user_detail.none') }}
{{ stats.penalty_quota_remaining }}
{{ stats.banned_until ? formatDate(stats.banned_until) : t('gamification.user_detail.no') }}
{{ stats.services_submitted }}
{{ stats.places_discovered }}
{{ stats.places_validated }}
{{ stats.providers_added_count }}
{{ penaltyError }}
{{ penaltySuccess }}
{{ rewardError }}
{{ rewardSuccess }}
| {{ t('gamification.user_detail.ledger_col_date') }} | {{ t('gamification.user_detail.ledger_col_points') }} | {{ t('gamification.user_detail.ledger_col_penalty') }} | {{ t('gamification.user_detail.ledger_col_xp') }} | {{ t('gamification.user_detail.ledger_col_reason') }} | {{ t('gamification.user_detail.ledger_col_source') }} |
|---|---|---|---|---|---|
| {{ formatDateTime(entry.created_at) }} | {{ entry.points >= 0 ? '+' : '' }}{{ entry.points }} | {{ entry.penalty_change ? `-${entry.penalty_change}` : '—' }} | {{ entry.xp ?? '—' }} | {{ entry.reason }} | {{ entry.source_type }}{{ entry.source_id ? ` #${entry.source_id}` : '' }} — |