Changelogs
Fix: tooltips de wowhead en el idioma de la web (no siempre inglés)
14 de julio de 2026 a las 22:41adevopg · 033ebc6
El script de tooltips prioriza el atributo data-wowhead sobre el subdominio del href, y su parámetro `domain` codifica idioma + versión: el 1.er segmento va al mapa de locales ({es:6,...}) y el resto a la versión (wotlk=WRATH). Antes se enviaba `domain=wotlk` (sin idioma) → locale 0 = inglés siempre. Ahora `wowheadData(type,id,locale)` genera `domain=es.wotlk` en español (locale 6) y `domain=wotlk` en inglés. Verificado: el endpoint de datos con locale 6 devuelve los nombres en español.
Enlaces de ítems por wowhead (locale + tooltips) en toda la web
14 de julio de 2026 a las 22:34adevopg · 7d1abab
Sustituye la base de datos de ítems del sistema antiguo (AoWoW en wotlk.novawow/wotlk.ultimowow) y los iconos de mirrors por wowhead / zamimg, con el idioma del tooltip según el locale de la web (es. / www.). Sistema reutilizable para rutas actuales y futuras: - lib/wowhead.ts: wowheadUrl/wowheadItemUrl/wowheadWotlkHome (subdominio por locale), wowheadIcon (zamimg) y wowheadData (atributo data-wowhead, rama WotLK). - components/WowheadLink.tsx: enlace con tooltip en el locale actual. - layout raíz: config whTooltips (solo tooltips) + script tooltips.js global; funciona con contenido añadido por React (carrito, búsquedas). Aplicado en: send-gift (catálogo + carrito), restore-items, recruit (RecruitPanel, enlace por item_id + icono zamimg), quest-character (misión/npc/ facción + iconos), y el enlace "WOTLK DB" de la cabecera. Verificado en prod (:3001): /es -> es.wowhead.com, /en -> www.wowhead.com, data-wowhead presente, iconos por zamimg.
send-gift: permitir pagar con PV (puntos de voto), más caro que PD
14 de julio de 2026 a las 22:18adevopg · 809eb75
Solo en /send-gift se añade una 4ª forma de pago: PV (vote points, gratis por votar). Cuesta más que PD para preservar su valor: coste_PV = coste_PD × VP_PRICE_FACTOR (=2, configurable en lib/pay-with-dpoints). - lib/dpoints: getVPointsBalance, creditVPoints y spendVPoints (débito atómico del campo vp, con FOR UPDATE), espejo de las de PD. - lib/pay-with-dpoints: VP_PRICE_FACTOR, vpointsCost() y payServiceWithVPoints() (descuenta PV, ejecuta el envío y reembolsa si falla). - gift/checkout: rama provider='vp' (además de 'pd'). - service-success: la entrega inmediata cubre 'pd' y 'vp'. - PaymentMethodSelect: opción VP opcional (solo si el form pasa vpBalance); muestra coste en PV, insuficiencia y el saldo VP. - SendGiftForm + página: pasan el saldo VP. - i18n Pay: vp, vpCost, insufficientVp, balanceVp, errors.insufficientVp (es/en).
rename-guild: el texto informativo refleja las 3 formas de pago
14 de julio de 2026 a las 22:01adevopg · 0244d0f
El párrafo "Requiere 1000 PD" era estático y contradecía el nuevo selector. Ahora indica el coste equivalente (1000 PD o 10 €) y que se puede elegir la forma de pago (PD, tarjeta con Stripe o SumUp), que ya se muestra en el formulario.
rename-guild: permitir pagar con PD, Stripe o SumUp
14 de julio de 2026 a las 21:56adevopg · 20ee5a8
Renombrar hermandad ya no es solo PD: ahora ofrece el mismo selector de forma de pago que el resto de servicios (saldo PD / tarjeta Stripe / tarjeta SumUp). El coste es equivalente: 1000 PD = 10 €. - lib/guild: se separa la validación (checkGuildRenameEligibility) del renombrado por SOAP (renameGuildBySoap); nuevo GUILD_RENAME_EUR (10 €). - paid-services: entrada 'rename-guild' para que la reconciliación/webhook entregue el servicio tras el pago con tarjeta. - nueva ruta /api/guild/rename/checkout con las 3 pasarelas (valida elegibilidad antes de cobrar); se elimina la antigua /api/guild/rename. - RenameGuildForm usa PaymentMethodSelect y redirige a service-success. - i18n: Paid.rename-guild (title/success) para la página de éxito.


