-- FTT initial schema (matches tools_ftt/schema.sql).
-- Applied by mysql_migrate.py; keep schema.sql in sync for fresh installs.

CREATE TABLE IF NOT EXISTS app_admin_config (
  id INT AUTO_INCREMENT PRIMARY KEY,
  config_key VARCHAR(64) NOT NULL,
  config_value LONGTEXT NOT NULL,
  updated_at DATETIME NOT NULL,
  UNIQUE KEY uk_config_key (config_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS reports (
  id INT AUTO_INCREMENT PRIMARY KEY,
  user_token_hash VARCHAR(64) NOT NULL,
  type VARCHAR(32) NOT NULL,
  title VARCHAR(255) NOT NULL,
  description TEXT,
  admin_response TEXT NULL,
  created_at DATETIME NOT NULL,
  responded_at DATETIME NULL,
  INDEX idx_user_token (user_token_hash),
  INDEX idx_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS app_logs (
  id INT AUTO_INCREMENT PRIMARY KEY,
  install_uuid VARCHAR(64) NOT NULL DEFAULT '',
  level VARCHAR(16) NOT NULL DEFAULT 'INFO',
  tag VARCHAR(64) NOT NULL DEFAULT 'FTT',
  message TEXT NOT NULL,
  detail TEXT NULL,
  device_info TEXT NULL,
  created_at DATETIME NOT NULL,
  INDEX idx_app_logs_created (created_at),
  INDEX idx_app_logs_install (install_uuid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS crash_logs (
  id INT AUTO_INCREMENT PRIMARY KEY,
  install_uuid VARCHAR(64) NOT NULL DEFAULT '',
  error_message TEXT NOT NULL,
  stack_trace LONGTEXT NULL,
  thread_name VARCHAR(128) NULL,
  device_info TEXT NULL,
  created_at DATETIME NOT NULL,
  INDEX idx_crash_logs_created (created_at),
  INDEX idx_crash_logs_install (install_uuid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT IGNORE INTO app_admin_config (config_key, config_value, updated_at)
VALUES ('locked_features', '[]', NOW());
