diff --git a/web-next/sql/add_news_en.sql b/web-next/sql/add_news_en.sql index 687b457..9f13e2f 100644 --- a/web-next/sql/add_news_en.sql +++ b/web-next/sql/add_news_en.sql @@ -1,5 +1,5 @@ -- Noticias multiidioma: versión en inglés (opcional). Si están vacías, la home -- en inglés cae a la versión en español. El texto original (titulo/contenido) es ES. -ALTER TABLE home_noticia +ALTER TABLE noticia ADD COLUMN titulo_en VARCHAR(200) NULL AFTER titulo, ADD COLUMN contenido_en LONGTEXT NULL AFTER contenido; diff --git a/web-next/sql/add_stripelog_metadata.sql b/web-next/sql/add_stripelog_metadata.sql index c75a132..d830fa6 100644 --- a/web-next/sql/add_stripelog_metadata.sql +++ b/web-next/sql/add_stripelog_metadata.sql @@ -2,4 +2,4 @@ -- /gold-character). La entrega (fulfillSumUpCheckout) parsea este JSON y lo pasa -- a la acción del servicio. NULL para servicios sin campos extra o compras de PD. -- Ver lib/sumup.ts. (MySQL 9.x no soporta ADD COLUMN IF NOT EXISTS.) -ALTER TABLE home_stripelog ADD COLUMN metadata TEXT NULL DEFAULT NULL; +ALTER TABLE stripelog ADD COLUMN metadata TEXT NULL DEFAULT NULL; diff --git a/web-next/sql/add_stripelog_service.sql b/web-next/sql/add_stripelog_service.sql index e452029..4a16538 100644 --- a/web-next/sql/add_stripelog_service.sql +++ b/web-next/sql/add_stripelog_service.sql @@ -2,4 +2,5 @@ -- corresponde el checkout para que la reconciliación ejecute la acción (renombrar) -- en vez de acreditar PD. NULL = compra de PD (comportamiento por defecto). -- Ver lib/sumup.ts (createSumUpCheckout / fulfillSumUpCheckout). -ALTER TABLE home_stripelog ADD COLUMN IF NOT EXISTS service VARCHAR(32) NULL DEFAULT NULL; +-- (MySQL 9.x no soporta ADD COLUMN IF NOT EXISTS: es sintaxis de MariaDB.) +ALTER TABLE stripelog ADD COLUMN service VARCHAR(32) NULL DEFAULT NULL; diff --git a/web-next/sql/db2/gen_store_catalog.py b/web-next/sql/db2/gen_store_catalog.py index 85255be..331ae72 100644 --- a/web-next/sql/db2/gen_store_catalog.py +++ b/web-next/sql/db2/gen_store_catalog.py @@ -136,7 +136,7 @@ def db_items(): env = os.path.join(HERE, '..', '..', '.env.local') cfg = dict(re.findall(r'^(\w+)=(.*)$', open(env, encoding='utf-8').read(), re.M)) q = ('SELECT category_code,item_id,name,IFNULL(icon,""),quantity,currency,price,' - 'IFNULL(preview,""),sort FROM home_store_item ORDER BY sort,id') + 'IFNULL(preview,""),sort FROM store_item ORDER BY sort,id') out = subprocess.run( ['mysql', '-h', cfg.get('DB_HOST', '127.0.0.1'), '-u', cfg['DB_USER'], f'-p{cfg["DB_PASSWORD"]}', '--default-character-set=utf8mb4', '-N', '--raw', @@ -161,9 +161,9 @@ with open(OUT, 'w', encoding='utf-8') as f: -- `css` es la clase de la CABECERA, que a veces sustituye a first-brown para -- colorear la categoría entera (p.ej. "Brujo" en color de brujo). SET NAMES utf8mb4; -DROP TABLE IF EXISTS home_store_item; -DROP TABLE IF EXISTS home_store_category; -CREATE TABLE home_store_category ( +DROP TABLE IF EXISTS store_item; +DROP TABLE IF EXISTS store_category; +CREATE TABLE store_category ( id INT AUTO_INCREMENT PRIMARY KEY, code VARCHAR(32) NOT NULL UNIQUE, parent_code VARCHAR(32) NULL, @@ -175,7 +175,7 @@ CREATE TABLE home_store_category ( sort INT NOT NULL, KEY k_parent (parent_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -CREATE TABLE home_store_item ( +CREATE TABLE store_item ( id INT AUTO_INCREMENT PRIMARY KEY, category_code VARCHAR(32) NOT NULL, item_id INT NOT NULL, @@ -193,7 +193,7 @@ CREATE TABLE home_store_item ( """) CH = 200 for i in range(0, len(cats), CH): - f.write('INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) VALUES\n') + f.write('INSERT INTO store_category (code,parent_code,name,name_en,css,depth,sort) VALUES\n') rows = [] for n, (code, parent, name, css, depth) in enumerate(cats[i:i + CH], start=i): en = tr_html(name) @@ -202,7 +202,7 @@ CREATE TABLE home_store_item ( f"'{esc(en)}'" if en else 'NULL', esc(css), depth, n)) f.write(',\n'.join(rows) + ';\n') for i in range(0, len(items), CH): - f.write('INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES\n') + f.write('INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES\n') rows = [] for cc, iid, nm, ic, qty, cur, pr, pv, so in items[i:i + CH]: rows.append("('%s',%s,'%s',%s,%s,'%s',%s,%s,%s)" % ( diff --git a/web-next/sql/db2/translate_categories.py b/web-next/sql/db2/translate_categories.py index 5de070c..e04d75e 100644 --- a/web-next/sql/db2/translate_categories.py +++ b/web-next/sql/db2/translate_categories.py @@ -4,7 +4,7 @@ Es una LIBRERÍA: la usa `gen_store_catalog.py` para el `name_en` del seed. Ejecutándolo se comprueban traducciones sueltas (nombres por stdin). Prioridad: términos OFICIALES sacados de los DB2 del cliente (ChrClasses, -ItemSet, ItemSubClass) y de los nombres bilingües de home_item_data. Solo se +ItemSet, ItemSubClass) y de los nombres bilingües de item_data. Solo se traduce a mano lo que la tienda se inventó y no existe en el juego. """ import json @@ -41,7 +41,7 @@ OF = {k.lower(): v for k, v in oficial.items()} # Términos extraídos de los nombres bilingües de ítem (no están en ItemSet: # los sets de PvP de WotLK no son ItemSets reales). Verificados con -# `SELECT name_es, name_en FROM home_item_data WHERE name_es LIKE ...`. +# `SELECT name_es, name_en FROM item_data WHERE name_es LIKE ...`. OF.update({ 'gladiador furioso': 'Furious Gladiator', 'gladiador incansable': 'Relentless Gladiator', diff --git a/web-next/sql/home_itemsearchhistory.sql b/web-next/sql/itemsearchhistory.sql similarity index 85% rename from web-next/sql/home_itemsearchhistory.sql rename to web-next/sql/itemsearchhistory.sql index 95aace9..e486326 100644 --- a/web-next/sql/home_itemsearchhistory.sql +++ b/web-next/sql/itemsearchhistory.sql @@ -1,5 +1,5 @@ -- Cooldown de "consultar ítems borrados" (/restore-items): 8 h por personaje. -CREATE TABLE IF NOT EXISTS home_itemsearchhistory ( +CREATE TABLE IF NOT EXISTS itemsearchhistory ( id BIGINT NOT NULL AUTO_INCREMENT, character_name VARCHAR(12) NOT NULL, used_at DATETIME NOT NULL, diff --git a/web-next/sql/home_promocode.sql b/web-next/sql/promocode.sql similarity index 92% rename from web-next/sql/home_promocode.sql rename to web-next/sql/promocode.sql index 3970644..867778e 100644 --- a/web-next/sql/home_promocode.sql +++ b/web-next/sql/promocode.sql @@ -1,7 +1,7 @@ -- Códigos de promoción (/promo-code): se canjean por PD y/o PV, con usos limitados. -- BD: django_wow (DB.default). Ver lib/promo.ts. -- `code` con collation *_bin => sensible a mayúsculas/minúsculas. -CREATE TABLE IF NOT EXISTS home_promocode ( +CREATE TABLE IF NOT EXISTS promocode ( id BIGINT NOT NULL AUTO_INCREMENT, code VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, pd INT NOT NULL DEFAULT 0, -- PD (donate points) que otorga @@ -16,7 +16,7 @@ CREATE TABLE IF NOT EXISTS home_promocode ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Un canje por cuenta y código. -CREATE TABLE IF NOT EXISTS home_promoredemption ( +CREATE TABLE IF NOT EXISTS promoredemption ( id BIGINT NOT NULL AUTO_INCREMENT, promo_id BIGINT NOT NULL, account_id INT UNSIGNED NOT NULL, diff --git a/web-next/sql/home_questsearchhistory.sql b/web-next/sql/questsearchhistory.sql similarity index 89% rename from web-next/sql/home_questsearchhistory.sql rename to web-next/sql/questsearchhistory.sql index 1767bb8..9d2e4de 100644 --- a/web-next/sql/home_questsearchhistory.sql +++ b/web-next/sql/questsearchhistory.sql @@ -1,6 +1,6 @@ -- Cooldowns del Rastreador de misiones (/quest-character), por personaje y categoría. -- category: 'class' (30 min), 'reputation' (1 h), 'specific' (10 min). -CREATE TABLE IF NOT EXISTS home_questsearchhistory ( +CREATE TABLE IF NOT EXISTS questsearchhistory ( id BIGINT NOT NULL AUTO_INCREMENT, character_name VARCHAR(12) NOT NULL, category VARCHAR(16) NOT NULL, diff --git a/web-next/sql/home_restorehistory.sql b/web-next/sql/restorehistory.sql similarity index 86% rename from web-next/sql/home_restorehistory.sql rename to web-next/sql/restorehistory.sql index 6baf9aa..da05507 100644 --- a/web-next/sql/home_restorehistory.sql +++ b/web-next/sql/restorehistory.sql @@ -1,5 +1,5 @@ -- Cooldown de Recuperar personaje (/restore-character): 12 h por personaje (guid). -CREATE TABLE IF NOT EXISTS home_restorehistory ( +CREATE TABLE IF NOT EXISTS restorehistory ( id BIGINT NOT NULL AUTO_INCREMENT, character_guid BIGINT NOT NULL, used_at DATETIME NOT NULL, diff --git a/web-next/sql/seed_giftitems.sql b/web-next/sql/seed_giftitems.sql index 26dea76..366a759 100644 --- a/web-next/sql/seed_giftitems.sql +++ b/web-next/sql/seed_giftitems.sql @@ -1,20 +1,20 @@ --- Catálogo de la tienda / regalos (django_wow.home_category + home_item). +-- Catálogo de la tienda / regalos (django_wow.category + item). -- Usado por /send-gift (y la futura /store). Precios en euros; item_id = id del -- ítem en el juego; image_url = icono (se muestra en la ficha del objeto). -- Idempotente: reusa categorías/ítems por su nombre / item_id único. -INSERT INTO home_category (name) VALUES +INSERT INTO category (name) VALUES ('Monturas'), ('Mascotas'), ('Consumibles'), ('Misceláneo') ON DUPLICATE KEY UPDATE name = VALUES(name); -INSERT INTO home_item (category_id, name, price, item_id, image_url) VALUES - ((SELECT id FROM home_category WHERE name='Monturas'), 'Riendas del protodraco azul', 5.00, 43599, 'https://wow.zamimg.com/images/wow/icons/large/ability_mount_drake_proto.jpg'), - ((SELECT id FROM home_category WHERE name='Monturas'), 'Riendas del draco rojo', 5.00, 44151, 'https://wow.zamimg.com/images/wow/icons/large/ability_mount_drake_red.jpg'), - ((SELECT id FROM home_category WHERE name='Mascotas'), 'Calabacín siniestro', 2.00, 44810, 'https://wow.zamimg.com/images/wow/icons/large/inv_misc_food_pumpkincookie.jpg'), - ((SELECT id FROM home_category WHERE name='Mascotas'), 'Cría de espormurciélago', 2.00, 34425, 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_pet_bat.jpg'), - ((SELECT id FROM home_category WHERE name='Consumibles'), 'Poción de curación rúnica', 1.00, 33447, 'https://wow.zamimg.com/images/wow/icons/large/inv_potion_167.jpg'), - ((SELECT id FROM home_category WHERE name='Consumibles'), 'Poción de maná rúnica', 1.00, 33448, 'https://wow.zamimg.com/images/wow/icons/large/inv_potion_137.jpg'), - ((SELECT id FROM home_category WHERE name='Misceláneo'), 'Bolsa de tela de niebla', 1.00, 41599, 'https://wow.zamimg.com/images/wow/icons/large/inv_misc_bag_29.jpg'), - ((SELECT id FROM home_category WHERE name='Misceláneo'), 'Caja de regalo', 1.00, 21519, 'https://wow.zamimg.com/images/wow/icons/large/inv_holiday_christmaspresent_01.jpg') +INSERT INTO item (category_id, name, price, item_id, image_url) VALUES + ((SELECT id FROM category WHERE name='Monturas'), 'Riendas del protodraco azul', 5.00, 43599, 'https://wow.zamimg.com/images/wow/icons/large/ability_mount_drake_proto.jpg'), + ((SELECT id FROM category WHERE name='Monturas'), 'Riendas del draco rojo', 5.00, 44151, 'https://wow.zamimg.com/images/wow/icons/large/ability_mount_drake_red.jpg'), + ((SELECT id FROM category WHERE name='Mascotas'), 'Calabacín siniestro', 2.00, 44810, 'https://wow.zamimg.com/images/wow/icons/large/inv_misc_food_pumpkincookie.jpg'), + ((SELECT id FROM category WHERE name='Mascotas'), 'Cría de espormurciélago', 2.00, 34425, 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_pet_bat.jpg'), + ((SELECT id FROM category WHERE name='Consumibles'), 'Poción de curación rúnica', 1.00, 33447, 'https://wow.zamimg.com/images/wow/icons/large/inv_potion_167.jpg'), + ((SELECT id FROM category WHERE name='Consumibles'), 'Poción de maná rúnica', 1.00, 33448, 'https://wow.zamimg.com/images/wow/icons/large/inv_potion_137.jpg'), + ((SELECT id FROM category WHERE name='Misceláneo'), 'Bolsa de tela de niebla', 1.00, 41599, 'https://wow.zamimg.com/images/wow/icons/large/inv_misc_bag_29.jpg'), + ((SELECT id FROM category WHERE name='Misceláneo'), 'Caja de regalo', 1.00, 21519, 'https://wow.zamimg.com/images/wow/icons/large/inv_holiday_christmaspresent_01.jpg') ON DUPLICATE KEY UPDATE category_id = VALUES(category_id), name = VALUES(name), price = VALUES(price), image_url = VALUES(image_url); diff --git a/web-next/sql/seed_votesites.sql b/web-next/sql/seed_votesites.sql index 8a5e680..8db92a0 100644 --- a/web-next/sql/seed_votesites.sql +++ b/web-next/sql/seed_votesites.sql @@ -3,10 +3,10 @@ -- OJO: las URLs apuntan a los listados de UltimoWoW (IDs 94649/496618/94147/91402); -- cámbialas por las de NovaWoW/nightspire en /admin/votes para que los votos cuenten aquí. -DELETE FROM home_votelog WHERE vote_site_id IN (SELECT id FROM home_votesite WHERE name = 'TopTest'); -DELETE FROM home_votesite WHERE name = 'TopTest'; +DELETE FROM votelog WHERE vote_site_id IN (SELECT id FROM votesite WHERE name = 'TopTest'); +DELETE FROM votesite WHERE name = 'TopTest'; -INSERT INTO home_votesite (name, url, image_url, points, created_at, updated_at) VALUES +INSERT INTO votesite (name, url, image_url, points, created_at, updated_at) VALUES ('Gtop100', 'https://gtop100.com/topsites/World-of-Warcraft/sitedetails/UltimoWoW-94649?vote=1&pingUsername=91402', '/nw-themes/nw-ryu/nw-images/nw-vote-sites/gtop100.jpg', 1, NOW(), NOW()), ('TopG', 'https://topg.org/wow-private-servers/in-496618-91402', '/nw-themes/nw-ryu/nw-images/nw-vote-sites/topg.webp', 1, NOW(), NOW()), ('Top100arena', 'http://www.top100arena.com/in.asp?id=94147&incentive=91402', '/nw-themes/nw-ryu/nw-images/nw-vote-sites/top100arena.jpg', 1, NOW(), NOW()), diff --git a/web-next/sql/store_catalog.sql b/web-next/sql/store_catalog.sql index a359e6f..060c076 100644 --- a/web-next/sql/store_catalog.sql +++ b/web-next/sql/store_catalog.sql @@ -6,9 +6,9 @@ -- `css` es la clase de la CABECERA, que a veces sustituye a first-brown para -- colorear la categoría entera (p.ej. "Brujo" en color de brujo). SET NAMES utf8mb4; -DROP TABLE IF EXISTS home_store_item; -DROP TABLE IF EXISTS home_store_category; -CREATE TABLE home_store_category ( +DROP TABLE IF EXISTS store_item; +DROP TABLE IF EXISTS store_category; +CREATE TABLE store_category ( id INT AUTO_INCREMENT PRIMARY KEY, code VARCHAR(32) NOT NULL UNIQUE, parent_code VARCHAR(32) NULL, @@ -20,7 +20,7 @@ CREATE TABLE home_store_category ( sort INT NOT NULL, KEY k_parent (parent_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -CREATE TABLE home_store_item ( +CREATE TABLE store_item ( id INT AUTO_INCREMENT PRIMARY KEY, category_code VARCHAR(32) NOT NULL, item_id INT NOT NULL, @@ -35,7 +35,7 @@ CREATE TABLE home_store_item ( KEY k_item (item_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) VALUES +INSERT INTO store_category (code,parent_code,name,name_en,css,depth,sort) VALUES ('1',NULL,'Armas PvE [Nivel 232 a 245]','PvE Weapons [Level 232 to 245]','first-brown',1,0), ('1-1','1','Arcos','Bows','first-brown',2,1), ('1-1-1','1-1','Nivel de objeto 232','Item Level 232','first-brown',3,2), @@ -236,7 +236,7 @@ INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) V ('5-5-2','5-5','Nivel de objeto 232','Item Level 232','first-brown',3,197), ('5-5-3','5-5','Nivel de objeto 239','Item Level 239','first-brown',3,198), ('5-5-4','5-5','Nivel de objeto 245','Item Level 245','first-brown',3,199); -INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) VALUES +INSERT INTO store_category (code,parent_code,name,name_en,css,depth,sort) VALUES ('5-6','5','Brazales de placa','Plate Bracers','first-brown',2,200), ('5-6-1','5-6','Nivel de objeto 226','Item Level 226','first-brown',3,201), ('5-6-2','5-6','Nivel de objeto 232','Item Level 232','first-brown',3,202), @@ -437,7 +437,7 @@ INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) V ('22-7-3','22-7','Temporada de Arenas 3','Arena Season 3','first-brown',3,397), ('22-7-4','22-7','Temporada de Arenas 4','Arena Season 4','first-brown',3,398), ('22-7-5','22-7','Temporada de Arenas 5 (Indómito)','Arena Season 5 (Savage)','first-brown',3,399); -INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) VALUES +INSERT INTO store_category (code,parent_code,name,name_en,css,depth,sort) VALUES ('22-7-7','22-7','Temporada de Arenas 5 (Mortal)','Arena Season 5 (Deadly)','first-brown',3,400), ('22-8','22','Dagas','Daggers','first-brown',2,401), ('22-8-2','22-8','Temporada de Arenas 2','Arena Season 2','first-brown',3,402), @@ -638,7 +638,7 @@ INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) V ('20-10-6','20-10','Set de Temporada de Arenas 5 (Odioso)','Arena Season 5 Set (Hateful)','first-brown',3,597), ('20-10-7','20-10','Set de Temporada de Arenas 5 (Mortal)','Arena Season 5 Set (Deadly)','first-brown',3,598), ('20-2','20','Cazador','Hunter','hunter',2,599); -INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) VALUES +INSERT INTO store_category (code,parent_code,name,name_en,css,depth,sort) VALUES ('20-2-1','20-2','Set de Temporada de Arenas 1','Arena Season 1 Set','first-brown',3,600), ('20-2-2','20-2','Set de Temporada de Arenas 2','Arena Season 2 Set','first-brown',3,601), ('20-2-3','20-2','Set de Temporada de Arenas 3','Arena Season 3 Set','first-brown',3,602), @@ -744,7 +744,7 @@ INSERT INTO home_store_category (code,parent_code,name,name_en,css,depth,sort) V ('26-7-1','26-7','Paladín, Sacerdote, Brujo','Paladin, Priest, Warlock','first-brown',3,702), ('26-7-2','26-7','Pícaro, Caballero de la Muerte, Mago, Druida','Rogue, Death Knight, Mage, Druid','first-brown',3,703), ('26-7-3','26-7','Guerrero, Cazador, Chamán','Warrior, Hunter, Shaman','first-brown',3,704); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('1-1-1',45327,'Grito de la sirena','inv_weapon_bow_51',1,'pd',200,'weapon-45327',0), ('1-1-2',48697,'Arco largo de golpe frenético','inv_weapon_bow_51',1,'pd',450,'weapon-48697',1), ('1-2-1',45498,'Lotrafen, lanza de los Malditos','inv_weapon_halberd_30',1,'pd',200,'weapon-45498',2), @@ -945,7 +945,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('2-15-1',42621,'Sigilo de disputa de Gladiador furioso','inv_shield_56',1,'pd',200,NULL,197), ('2-15-1',42608,'Tótem de indomabilidad de Gladiador furioso','spell_nature_slowingtotem',1,'pd',200,NULL,198), ('2-15-1',42603,'Tótem de supervivencia de Gladiador furioso','spell_nature_slowingtotem',1,'pd',200,NULL,199); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('2-15-1',42598,'Tótem del tercer aliento de Gladiador furioso','spell_frost_summonwaterelemental',1,'pd',200,NULL,200), ('2-15-1',42853,'Tratado sobre entereza de Gladiador furioso','inv_relics_libramofhope',1,'pd',200,NULL,201), ('2-15-1',42615,'Tratado sobre justicia de Gladiador furioso','inv_misc_book_07',1,'pd',200,NULL,202), @@ -1146,7 +1146,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('3-10-4',48065,'Capucha de triunfo de Zabra','inv_helmet_87',1,'pd',450,NULL,397), ('3-10-4',48062,'Hombreras de triunfo de Zabra','inv_shoulder_90',1,'pd',450,NULL,398), ('3-10-4',48063,'Toga de triunfo de Zabra','inv_chest_cloth_73',1,'pd',450,NULL,399); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('3-10-4',48066,'Guantes de triunfo de Zabra','inv_gauntlets_55',1,'pd',450,NULL,400), ('3-10-4',48064,'Guantes de triunfo de Zabra','inv_pants_cloth_06',1,'pd',450,NULL,401), ('4-1-1',41993,'Capucha de tejido vil de Gladiador furioso','inv_helmet_137',1,'pd',200,NULL,402), @@ -1347,7 +1347,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('5-10-4',47283,'Cinturón de cicatrices ensangrentadas','inv_belt_46b',1,'pd',450,NULL,597), ('5-10-4',48009,'Cinturón del Campeón abisal','inv_belt_50',1,'pd',450,NULL,598), ('5-10-4',47998,'Cinturón del Empalador','inv_belt_46b',1,'pd',450,NULL,599); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('5-10-4',47268,'Faja de baño de sangre','inv_belt_50',1,'pd',450,NULL,600), ('5-10-4',47323,'Faja del mártir olvidado','inv_belt_51',1,'pd',450,NULL,601), ('5-10-4',47997,'Faja del Tramo Helado','inv_belt_51',1,'pd',450,NULL,602), @@ -1548,7 +1548,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('6-12-1',41836,'Botas de triunfo de Gladiador furioso','inv_boots_cloth_05',1,'pd',150,NULL,797), ('6-12-2',41636,'Botas de dominancia de Gladiador incansable','inv_boots_cloth_05',1,'pd',400,NULL,798), ('6-12-2',41622,'Botas de salvación de Gladiador incansable','inv_boots_cloth_05',1,'pd',400,NULL,799); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('6-12-2',41837,'Botas de triunfo de Gladiador incansable','inv_boots_cloth_05',1,'pd',400,NULL,800), ('6-13-1',41075,'Escarpes de dominancia de Gladiador furioso','inv_boots_plate_09',1,'pd',150,NULL,801), ('6-13-1',41055,'Escarpes de salvación de Gladiador furioso','inv_boots_plate_09',1,'pd',150,NULL,802), @@ -1749,7 +1749,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('11-3-1',2319,'Cuero medio','inv_misc_leatherscrap_05',20,'pd',20,NULL,997), ('11-3-1',4234,'Cuero pesado','inv_misc_leatherscrap_07',20,'pd',30,NULL,998), ('11-3-1',4304,'Cuero grueso','inv_misc_leatherscrap_08',20,'pd',40,NULL,999); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('11-3-1',8170,'Cuero basto','inv_misc_leatherscrap_02',20,'pd',50,NULL,1000), ('11-3-1',21887,'Cuero de pellejo nudoso','inv_misc_leatherscrap_10',20,'pd',60,NULL,1001), ('11-3-1',33568,'Cuero boreal','inv_misc_leatherscrap_15',20,'pd',100,NULL,1002), @@ -1950,7 +1950,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('14-3-1',33993,'Mojo','spell_shaman_hex',1,'pd',300,NULL,1197), ('14-3-1',34518,'Moneda de cerdo de oro','inv_misc_coin_01',1,'pd',300,NULL,1198), ('14-3-1',34519,'Moneda de cerdo de plata','inv_misc_coin_03',1,'pd',300,NULL,1199); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('14-3-1',32498,'Moneda de la fortuna','inv_misc_elvencoins',1,'pd',300,NULL,1200), ('14-3-1',49665,'Monje Pandaren','inv_misc_pet_03',1,'pd',300,NULL,1201), ('14-3-1',20769,'Moquillo desagradable','ability_creature_poison_05',1,'pd',300,NULL,1202), @@ -2151,7 +2151,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('25-8-1',39276,'La calavera de ruina','inv_shield_26',1,'pd',200,'weapon-39276',1397), ('25-8-1',40400,'Muralla de terror','inv_shield_32',1,'pd',200,'weapon-40400',1398), ('25-8-1',19348,'Protector de dragontina roja','inv_shield_20',1,'pd',200,'weapon-19348',1399); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('25-8-1',18756,'Protector del Guardia del Terror','inv_shield_17',1,'pd',200,'weapon-18756',1400), ('25-8-1',40266,'Rendición de héroe','inv_shield_56',1,'pd',200,'weapon-40266',1401), ('25-8-1',23238,'Rodela estigia','inv_armor_shield_naxxramas_d_02',1,'pd',200,'weapon-23238',1402), @@ -2352,7 +2352,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('22-8-4',35102,'Hoja de hechizo de Gladiador brutal','inv_weapon_shortblade_73',1,'pd',150,'weapon-35102',1597), ('22-8-4',35058,'Mutilador de Gladiador brutal','inv_weapon_shortblade_75',1,'pd',150,'weapon-35058',1598), ('22-8-5',42217,'Chafarote de Gladiador indómito','inv_weapon_shortblade_90',1,'pd',200,'weapon-42217',1599); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('22-8-5',42216,'Faca de Gladiador indómito','inv_weapon_shortblade_90',1,'pd',200,'weapon-42216',1600), ('22-8-5',42343,'Hoja de hechizo de Gladiador indómito','inv_weapon_shortblade_91',1,'pd',200,'weapon-42343',1601), ('22-8-5',42215,'Mutilador de Gladiador indómito','inv_weapon_shortblade_90',1,'pd',200,'weapon-42215',1602), @@ -2553,7 +2553,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('19-10-2',38663,'Bufas de placas de saronita empapadas de sangre','inv_shoulder_78',1,'pd',125,NULL,1797), ('19-10-2',38665,'Placa de guerra de saronita','inv_chest_plate18',1,'pd',125,NULL,1798), ('19-10-2',38666,'Brazales de placas de saronita','inv_bracer_17',1,'pd',125,NULL,1799); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('19-10-2',38667,'Guanteletes de mando de Malasangre','inv_gauntlets_71',1,'pd',125,NULL,1800), ('19-10-2',38668,'Faja del Pesteador','inv_belt_36',1,'pd',125,NULL,1801), ('19-10-2',38669,'Quijotes de saronita grabados','inv_pants_cloth_27',1,'pd',125,NULL,1802), @@ -2754,7 +2754,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('19-4-1',16715,'Botas Corazón Salvaje','inv_boots_08',1,'pd',30,NULL,1997), ('19-4-2',22109,'Capucha cuoroferal','inv_helmet_27',1,'pd',40,NULL,1998), ('19-4-2',22112,'Bufas cuoroferal','inv_shoulder_01',1,'pd',40,NULL,1999); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('19-4-2',22113,'Jubón cuoroferal','inv_chest_plate06',1,'pd',40,NULL,2000), ('19-4-2',22108,'Brazales cuoroferal','inv_bracer_09',1,'pd',40,NULL,2001), ('19-4-2',22110,'Guantes cuoroferal','inv_gauntlets_17',1,'pd',40,NULL,2002), @@ -2955,7 +2955,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('19-6-6',29079,'Espaldares de los Aldor','inv_shoulder_25',1,'pd',100,NULL,2197), ('19-6-6',29077,'Vestimentas de los Aldor','inv_chest_cloth_43',1,'pd',100,NULL,2198), ('19-6-6',29080,'Guantes de los Aldor','inv_gauntlets_17',1,'pd',100,NULL,2199); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('19-6-6',29078,'Ataduras de los Aldor','inv_pants_cloth_05',1,'pd',100,NULL,2200), ('19-6-7',30196,'Togas de Tirisfal','inv_chest_cloth_43',1,'pd',120,NULL,2201), ('19-6-7',30205,'Guantes de Tirisfal','inv_gauntlets_17',1,'pd',120,NULL,2202), @@ -3156,7 +3156,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('19-8-12',46123,'Coraza hoja de terror de conquistador','inv_chest_chain_15',1,'pd',175,NULL,2397), ('19-8-12',46124,'Guanteletes hoja de terror de conquistador','inv_gauntlets_25',1,'pd',175,NULL,2398), ('19-8-12',46126,'Quijotes hoja de terror de conquistador','inv_pants_mail_15',1,'pd',175,NULL,2399); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('19-8-13',21360,'Yelmo de mortífero','inv_helmet_04',1,'pd',75,NULL,2400), ('19-8-13',21361,'Bufas de mortífero','inv_shoulder_03',1,'pd',75,NULL,2401), ('19-8-13',21364,'Jubón de mortífero','inv_chest_leather_08',1,'pd',75,NULL,2402), @@ -3357,7 +3357,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('19-14-10',19402,'Musleras del cruzado caído','inv_pants_plate_16',1,'pd',150,NULL,2597), ('19-14-10',8312,'Coraza de alabastro','inv_chest_chain_05',1,'pd',150,NULL,2598), ('19-14-10',45941,'Coselete del azotador','inv_chest_leather_15',1,'pd',175,NULL,2599); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('19-14-10',46028,'Visera del horror sin ojos','inv_helmet_129',1,'pd',175,NULL,2600), ('19-14-10',45321,'Espaldares de voluntad templada','inv_shoulder_91',1,'pd',175,NULL,2601), ('19-14-10',45299,'Embozo de acero de dragones','inv_helmet_130',1,'pd',175,NULL,2602), @@ -3558,7 +3558,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('20-6-1',25856,'Vestiduras de seda de Gladiador','inv_chest_leather_01',1,'pd',100,NULL,2797), ('20-6-1',25857,'Manoplas de seda de Gladiador','inv_gauntlets_19',1,'pd',100,NULL,2798), ('20-6-1',25858,'Calzas de seda de Gladiador','inv_pants_07',1,'pd',100,NULL,2799); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('20-6-2',32048,'Capucha de seda de Gladiador despiadado','inv_helmet_08',1,'pd',120,NULL,2800), ('20-6-2',32047,'Amito de seda de Gladiador despiadado','inv_shoulder_19',1,'pd',120,NULL,2801), ('20-6-2',32050,'Vestiduras de seda de Gladiador despiadado','inv_chest_leather_01',1,'pd',120,NULL,2802), @@ -3759,7 +3759,7 @@ INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,p ('26-3-2',34855,'Cinturón del vencedor olvidado','inv_belt_27',1,'pd',300,NULL,2997), ('26-3-2',31099,'Leotardos del vencedor olvidado','inv_pants_plate_17',1,'pd',300,NULL,2998), ('26-3-2',34858,'Botas del vencedor olvidado','inv_boots_plate_07',1,'pd',300,NULL,2999); -INSERT INTO home_store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES +INSERT INTO store_item (category_code,item_id,name,icon,quantity,currency,price,preview,sort) VALUES ('26-3-3',31095,'Yelmo del protector olvidado','inv_helmet_24',1,'pd',300,NULL,3000), ('26-3-3',31103,'Espaldares del protector olvidado','inv_shoulder_22',1,'pd',300,NULL,3001), ('26-3-3',31091,'Coselete del protector olvidado','inv_chest_chain_03',1,'pd',300,NULL,3002), diff --git a/web-next/sql/home_store_order.sql b/web-next/sql/store_order.sql similarity index 91% rename from web-next/sql/home_store_order.sql rename to web-next/sql/store_order.sql index 080d55b..23b3a8b 100644 --- a/web-next/sql/home_store_order.sql +++ b/web-next/sql/store_order.sql @@ -1,6 +1,6 @@ -- Pedido de tienda pagado con tarjeta (Stripe/SumUp): guarda el carrito para -- entregarlo tras confirmarse el pago (evita el límite de metadata de la pasarela). -CREATE TABLE IF NOT EXISTS home_store_order ( +CREATE TABLE IF NOT EXISTS store_order ( ref VARCHAR(64) PRIMARY KEY, account_id INT NOT NULL, character_name VARCHAR(12) NOT NULL, diff --git a/web-next/sql/home_tradecode.sql b/web-next/sql/tradecode.sql similarity index 96% rename from web-next/sql/home_tradecode.sql rename to web-next/sql/tradecode.sql index c188059..bb6db8a 100644 --- a/web-next/sql/home_tradecode.sql +++ b/web-next/sql/tradecode.sql @@ -1,6 +1,6 @@ -- Comercio de PD (/trade-points): códigos de 1 solo uso PD<->oro. -- BD: django_wow (DB.default). Ver lib/trade.ts. -CREATE TABLE IF NOT EXISTS home_tradecode ( +CREATE TABLE IF NOT EXISTS tradecode ( id BIGINT NOT NULL AUTO_INCREMENT, code VARCHAR(25) NOT NULL, creator_account INT UNSIGNED NOT NULL,