const DB_NAME = "medtools-consultation-recorder";
const RUNTIME_STATE_KEY = "medtools.consultation.runtimeState";
const LONG_RECORDING_ALARM = "medtools.consultation.longRecording";
const STOPPED_FINISH_ALARM = "medtools.consultation.stoppedFinish";

const statusEl = document.getElementById("status");

runCleanup().catch((error) => {
  statusEl.textContent = `Не вдалося очистити recorder: ${error.message || String(error)}`;
});

async function runCleanup() {
  statusEl.textContent = "Закриваю старий стан запису...";
  await chrome.storage.local.remove(RUNTIME_STATE_KEY);
  await chrome.alarms.clear(LONG_RECORDING_ALARM);
  await chrome.alarms.clear(STOPPED_FINISH_ALARM);
  statusEl.textContent = "Очищую локальну базу аудіочерги...";
  await deleteDatabase(DB_NAME);
  statusEl.innerHTML = "Готово. Локальну чергу recorder очищено. Відкрийте <code>AI-запис</code> ще раз.";
}

function deleteDatabase(name) {
  return new Promise((resolve, reject) => {
    const request = indexedDB.deleteDatabase(name);
    request.onblocked = () => reject(new Error("База заблокована відкритою вкладкою recorder. Закрийте старі вкладки recorder і повторіть."));
    request.onerror = () => reject(request.error || new Error("IndexedDB delete failed"));
    request.onsuccess = () => resolve();
  });
}
