-- 009 (L18/L33): agregados del registro vivo y API keys
CREATE TABLE IF NOT EXISTS registro_agregados (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  ambito ENUM('producto','tipo','articulacion','cirujano') NOT NULL,
  ambito_id BIGINT UNSIGNED NOT NULL,
  metrica VARCHAR(40) NOT NULL,          -- prom_s12_mediana, prom_s52_mediana, n_episodios...
  valor DECIMAL(8,2) NOT NULL,
  n INT NOT NULL,
  calculado_at DATETIME NOT NULL,
  UNIQUE KEY uq_agg (ambito, ambito_id, metrica)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS api_keys (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  titular VARCHAR(160) NOT NULL,
  clave CHAR(48) NOT NULL UNIQUE,
  activa TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS resenas (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  user_id BIGINT UNSIGNED NOT NULL,
  cirujano_id BIGINT UNSIGNED NOT NULL,
  episodio_id BIGINT UNSIGNED NOT NULL UNIQUE,   -- SOLO con episodio real: reseña verificada
  puntuacion TINYINT NOT NULL,
  texto VARCHAR(1200) NULL,
  estado ENUM('pendiente','publicada','rechazada') NOT NULL DEFAULT 'pendiente',
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY idx_res (cirujano_id, estado)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
