-- Ejecutar UNA VEZ.
-- Regalo promocional que el admin activa para TODOS los usuarios (ej.
-- "20 diamantes de bienvenida por el aniversario"). Cada usuario solo
-- puede reclamar cada regalo una vez (unique en regalos_reclamados).
SET NAMES utf8mb4;

CREATE TABLE regalos_admin (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  titulo VARCHAR(80) NOT NULL,
  descripcion VARCHAR(200) DEFAULT NULL,
  diamantes INT UNSIGNED NOT NULL DEFAULT 0,
  monedas INT UNSIGNED NOT NULL DEFAULT 0,
  activo TINYINT(1) NOT NULL DEFAULT 1,
  creado_por INT UNSIGNED DEFAULT NULL,
  creado_en DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  CONSTRAINT regalos_admin_ibfk_1 FOREIGN KEY (creado_por) REFERENCES usuarios(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE regalos_reclamados (
  usuario_id INT UNSIGNED NOT NULL,
  regalo_id INT UNSIGNED NOT NULL,
  reclamado_en DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (usuario_id, regalo_id),
  CONSTRAINT regalos_reclamados_ibfk_1 FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE,
  CONSTRAINT regalos_reclamados_ibfk_2 FOREIGN KEY (regalo_id) REFERENCES regalos_admin(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
