)
}
function getRankDescription(rank: MayaRank): string {
const descriptions = {
novato: 'Estás dando tus primeros pasos en el conocimiento maya.',
aprendiz: 'Tu curiosidad te ha llevado a descubrir más secretos mayas.',
explorador: 'Has explorado profundamente la sabiduría de los antiguos mayas.',
maestro: 'Dominas el conocimiento maya con maestría.',
sabio: 'Eres un verdadero sabio, poseedor de la antigua sabiduría maya.'
}
return descriptions[rank]
}
```
---
## Dependencias
**Antes:**
- US-FUND-001 (Autenticación)
- US-GAM-002 (Sistema XP)
---
## Definición de Hecho (DoD)
- [x] 5 rangos implementados
- [x] Cálculo automático de rango por XP
- [x] Progreso hacia siguiente rango
- [x] Notificación al subir de rango
- [x] Historial de rangos
- [x] Iconos diseñados para cada rango
- [x] Tests unitarios
---
## Notas del Alcance Inicial
- ✅ 5 rangos fijos (hardcoded)
- ✅ Umbrales de XP predefinidos
- ✅ Sin rangos personalizables
- ✅ Sin títulos o prestigio adicional
- ⚠️ **Extensión futura:** EXT-023-AdvancedRanks (rangos adicionales, prestigio, títulos)
---
## Testing
```typescript
describe('RankService', () => {
it('should calculate rank from XP')
it('should detect rank up')
it('should calculate progress to next rank')
it('should handle max rank (Sabio)')
})
```
---
## Estimación
**Desglose (8 SP = ~3 días):**
- Backend: lógica rangos: 1 día
- Frontend: componentes: 1.25 días
- Iconos/diseño: 0.5 días
- Testing: 0.25 días
---
**Creado:** 2025-11-02
**Responsable:** Equipo Fullstack + Diseño