-- Ejecutar UNA VEZ si tu base de datos ya existía antes de este cambio.
-- SET NAMES evita que los acentos (á, é, í...) se guarden mal si tu
-- cliente de mysql no está usando utf8mb4 por defecto.
SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS articulos_tienda (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  tipo ENUM('ficha_skin','avatar','marco') NOT NULL,
  codigo VARCHAR(40) NOT NULL UNIQUE,
  nombre VARCHAR(80) NOT NULL,
  descripcion VARCHAR(200) NULL,
  precio_monedas INT NOT NULL DEFAULT 0,
  disponible TINYINT(1) NOT NULL DEFAULT 1,
  orden TINYINT NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS usuario_articulos (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  usuario_id INT UNSIGNED NOT NULL,
  articulo_id INT UNSIGNED NOT NULL,
  comprado_en DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE,
  FOREIGN KEY (articulo_id) REFERENCES articulos_tienda(id) ON DELETE CASCADE,
  UNIQUE KEY uniq_usuario_articulo (usuario_id, articulo_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE usuarios
  ADD COLUMN ficha_equipada VARCHAR(40) NOT NULL DEFAULT 'clasica' AFTER experiencia,
  ADD COLUMN avatar_equipado VARCHAR(40) NULL AFTER ficha_equipada,
  ADD COLUMN marco_equipado VARCHAR(40) NULL AFTER avatar_equipado;

INSERT IGNORE INTO articulos_tienda (tipo, codigo, nombre, descripcion, precio_monedas, orden) VALUES
  ('ficha_skin', 'clasica',   'Clásica Blanca',  'La ficha de siempre, blanca y sencilla.', 0,   1),
  ('ficha_skin', 'ebano',     'Ébano Negro',     'Fichas negras con puntos blancos.',       200, 2),
  ('ficha_skin', 'oro',       'Oro Real',        'Fichas doradas con puntos borgoña.',      500, 3),
  ('ficha_skin', 'neon',      'Neón Turquesa',   'Fichas oscuras con brillo turquesa.',     350, 4),

  ('avatar', 'guerrero', 'Guerrero Dorado', 'Avatar exclusivo dorado.',   150, 1),
  ('avatar', 'ninja',    'Ninja Turquesa',  'Avatar exclusivo turquesa.', 150, 2),
  ('avatar', 'robot',    'Robot Plateado',  'Avatar exclusivo plateado.', 200, 3),
  ('avatar', 'fantasma', 'Fantasma Dorado', 'Avatar exclusivo especial.', 300, 4),

  ('marco', 'anillo_oro',   'Anillo Dorado',   'Borde dorado alrededor de tu avatar.',        150, 1),
  ('marco', 'aura_turquesa','Aura Turquesa',   'Resplandor turquesa alrededor de tu avatar.', 250, 2),
  ('marco', 'corona',       'Corona Real',     'Una corona sobre tu avatar.',                 400, 3),
  ('marco', 'llamas',       'Llamas',          'Borde de fuego alrededor de tu avatar.',      600, 4);
