// background.js

let db;

// Initialize IndexedDB
function initDB() {
   let request = indexedDB.open('YouTubeURLsDB', 1);

   request.onupgradeneeded = function (event) {
      db = event.target.result;
      if (!db.objectStoreNames.contains('urls')) {
         let objectStore = db.createObjectStore('urls', { keyPath: 'id', autoIncrement: true });
         objectStore.createIndex('url', 'url', { unique: true });
      }
   };

   request.onerror = function () {
      console.error("Failed to open IndexedDB");
   };

   request.onsuccess = function () {
      db = request.result;
   };
}

// Store URL in the database
function storeURL(url) {
   const transaction = db.transaction(['urls'], 'readwrite');
   const store = transaction.objectStore('urls');

   const data = { url: url, timestamp: new Date().toISOString() };

   const request = store.add(data);

   request.onsuccess = function () {
      console.log('URL saved to database');
   };

   request.onerror = function () {
      console.error('Failed to save URL');
   };
}

// Listen for messages from the content script
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
   if (request.action === 'storeURL') {
      storeURL(request.url);
   }
});

initDB();