- PvP: pestaña Campos de batalla (pvpstats) con resultado, stats por partida y fecha/hora.
- Logros: rejilla por categoría con anillos de progreso + detalle por categoría
(datos de Achievement.db2 + Achievement_Category.db2, iconos vía wowhead).
- Bandas: progreso por dificultad (10/25/heroico) con jefes reales de DungeonEncounter.db2
y tooltip de jefes; agrupado por expansión (Clásico/TBC/WotLK).
- Mazmorras: mismo sistema, Normal + Heroico, Clásico/TBC/WotLK.
- Página de hermandad estilo armería: cabecera (emblema, puntos = unión de logros de
miembros sin duplicar, nº miembros, fundada), pestañas Hermandad/Logros, roster con
iconos de clase/raza, columna Función (rol por spec), filtros clase/función,
orden por rango/puntos/nivel de objeto/nivel/nombre, paginación.
- Barra lateral: mensaje diario con login (iron-session, gated por pertenencia),
logros recientes y desgloses de clases y funciones.
- Cabecera de personaje: enlace a la hermandad + nombre del reino.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
La ficha de personaje pasa a mostrar el equipo sobre el paperdoll (con
encantamientos y gemas en los tooltips de wowhead), el árbol de talentos y
la actividad reciente del personaje.
El proxy de /modelviewer/* deja de ser un rewrite de Next y pasa a un route
handler que cachea en disco los assets de zamimg, para no repetir la descarga
en cada visita.
Tres arreglos:
1) Búsqueda insensible a mayúsculas/minúsculas. Las consultas usaban LIKE directo
(sensible según la colación de la tabla), así que 'test' no encontraba 'Test'.
Ahora comparan con LOWER(col) LIKE LOWER(?).
2) Autocompletar tipo wowhead. Nuevo /api/armory/suggest + ArmorySearchBox
reescrito: al teclear (≥1 carácter, con debounce) muestra un desplegable con
personajes, ítems y hermandades que coinciden; clic va directo a la ficha/wowhead.
Enter o el botón siguen haciendo la búsqueda completa.
3) Visor 3D «no disponible». Causa: el contenido de wow.zamimg.com/modelviewer no
envía cabeceras CORS (el propio README de wow-model-viewer pide un proxy). Se
añade un rewrite en next.config (/modelviewer/* -> zamimg) para servirlo
same-origin, y el visor usa esas rutas. Además, si falla la resolución de ítems
se renderiza el personaje sin equipo, y los errores se registran en consola para
diagnóstico.
Verificado: 'test' encuentra 'Test'; el autocompletar responde; el proxy
/modelviewer/live/viewer/viewer.min.js sirve 200 same-origin.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>