/**
 * Background Service Worker
 * Nhiệm vụ: Handle messages từ content script và gọi API
 */

import { createMemo } from '../shared/api-client';

chrome.runtime.onMessage.addListener((message, _sender, sendResponse) => {
  if (message.type === 'SHOW_NOTE_FORM') {
    // Mở popup với note form
    chrome.action.openPopup();
    
    // Lưu data vào storage để popup có thể lấy
    chrome.storage.local.set({
      pendingNote: message.data,
    });

    sendResponse({ success: true });
  } else if (message.type === 'SAVE_NOTE') {
    // Auto save note ngay lập tức
    const { text, url, title } = message.data;
    
    console.log('[CuCu Note] 📝 Saving note:', { text: text.substring(0, 50) + '...', url, title });
    
    // Parse tags từ URL
    const domain = new URL(url).hostname.replace('www.', '');
    const tagList = [domain, 'web-highlight'];
    
    // Add source info vào content
    const contentWithSource = `${text}\n\n---\nSource: [${title}](${url})`;
    
    // Gọi API để save (có gửi kèm Clerk token trong Authorization header)
    createMemo({
      content: contentWithSource,
      tags: tagList,
      visibility: 'PRIVATE',
    })
      .then((memo) => {
        console.log('[CuCu Note] ✅ Note saved with ID:', memo.id);
        sendResponse({ success: true, memo });
      })
      .catch((error) => {
        console.error('[CuCu Note] ❌ Error saving note:', error);
        sendResponse({ success: false, error: error.message });
      });
    
    return true; // Keep channel open for async
  }
  
  return true; // Keep channel open for async response
});

