import { BibleHighlight } from '@/types' import { getAllHighlights, addHighlight, updateHighlight } from './highlight-manager' import { mergeHighlights } from './sync-conflict-resolver' export async function pullAndMergeHighlights(): Promise { try { // Fetch all highlights from server const response = await fetch('/api/highlights/all') if (!response.ok) { console.error('Failed to pull highlights:', response.status) return [] } const { highlights: serverHighlights } = await response.json() // Get local highlights const clientHighlights = await getAllHighlights() // Merge with conflict resolution const merged = mergeHighlights(clientHighlights, serverHighlights) // Update local storage with merged version for (const highlight of merged) { const existing = clientHighlights.find(h => h.id === highlight.id) if (existing) { // Update if different if (JSON.stringify(existing) !== JSON.stringify(highlight)) { await updateHighlight(highlight) } } else { // Add new highlights from server await addHighlight(highlight) } } return merged } catch (error) { console.error('Error pulling highlights:', error) return [] } }