-- 004 (L10-L11): cuentas de usuario final, implantes registrados, cola de email y notificaciones
ALTER TABLE users
  ADD COLUMN IF NOT EXISTS tipo ENUM('staff','paciente','profesional','fabricante','servicio') NOT NULL DEFAULT 'staff',
  ADD COLUMN IF NOT EXISTS consent_at DATETIME NULL,
  ADD COLUMN IF NOT EXISTS cirujano_id BIGINT UNSIGNED NULL;

CREATE TABLE IF NOT EXISTS implantes_usuario (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  user_id BIGINT UNSIGNED NOT NULL,
  producto_id BIGINT UNSIGNED NULL,
  producto_texto VARCHAR(200) NULL,
  articulacion ENUM('cadera','rodilla','hombro','columna','tobillo','codo','atm') NOT NULL,
  lado ENUM('izquierda','derecha','bilateral','na') DEFAULT 'na',
  fecha_intervencion DATE NULL,
  centro_texto VARCHAR(200) NULL,
  cirujano_texto VARCHAR(200) NULL,
  lote VARCHAR(80) NULL,
  udi VARCHAR(120) NULL,
  origen ENUM('autodeclarado','episodio') NOT NULL DEFAULT 'autodeclarado',
  episodio_id BIGINT UNSIGNED NULL,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  deleted_at DATETIME NULL,
  KEY idx_iu (user_id, deleted_at), KEY idx_iu_prod (producto_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS email_cola (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  destinatario VARCHAR(160) NOT NULL,
  asunto VARCHAR(200) NOT NULL,
  cuerpo TEXT NOT NULL,
  categoria VARCHAR(40) NOT NULL DEFAULT 'general',
  estado ENUM('pendiente','enviado','error') NOT NULL DEFAULT 'pendiente',
  enviado_at DATETIME NULL,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY idx_cola (estado, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS notificaciones (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  user_id BIGINT UNSIGNED NOT NULL,
  tipo VARCHAR(40) NOT NULL,
  titulo VARCHAR(200) NOT NULL,
  cuerpo TEXT NULL,
  url VARCHAR(300) NULL,
  leida_at DATETIME NULL,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY idx_notif (user_id, leida_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
ALTER TABLE users MODIFY rol ENUM('admin','revisor_medico','editor','usuario') NOT NULL DEFAULT 'usuario';
ALTER TABLE users ADD COLUMN IF NOT EXISTS activo TINYINT(1) NOT NULL DEFAULT 1;
