Reclutamiento: página de usuario para reclamar recompensas (recruit-a-friend)
Portado de home/views/recruit.py: - lib/recruit-claim.ts: getRecruitRewards (con marca de reclamadas), getRecruitedLevel80Count, y claimRecruitReward con las mismas validaciones que Django (recompensa existe, no reclamada, amigos reclutados a nivel 80 suficientes, anti-abuso por IP compartida), entrega por SOAP `.send items` (éxito si "Mail sent to") y registro en home_claimedreward. Extra de seguridad: valida que el personaje sea de la cuenta. - API POST /api/recruit/claim (401 sin sesión). - UI /recruit (pública): rejilla de recompensas con estado reclamada/elegible/bloqueada, selector de personaje y contador de amigos a nivel 80. Enlace en el footer. - i18n es/en: namespace RecruitClaim + Nav.recruit. Verificado: build OK, /recruit 200, claim 401 sin sesión. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,6 +45,9 @@ export async function Footer() {
|
||||
<Link href="/vote-points" className="hover:text-nw-gold-light">
|
||||
{t('vote')}
|
||||
</Link>
|
||||
<Link href="/recruit" className="hover:text-nw-gold-light">
|
||||
{t('recruit')}
|
||||
</Link>
|
||||
<Link href="/register" className="hover:text-nw-gold-light">
|
||||
{t('register')}
|
||||
</Link>
|
||||
|
||||
Reference in New Issue
Block a user