import { DEFAULT_SETTINGS } from './types.js'; const SETTINGS_KEY = 'taskdecay_settings_v1'; const TASKS_KEY = 'taskdecay_tasks_v1'; const SYNC_KEY = 'taskdecay_last_sync_v1'; export async function getSettings() { const result = await chrome.storage.local.get([SETTINGS_KEY]); const stored = result[SETTINGS_KEY]; if (!stored) return JSON.parse(JSON.stringify(DEFAULT_SETTINGS)); const parsed = typeof stored === 'string' ? JSON.parse(stored) : stored; return { ...DEFAULT_SETTINGS, ...parsed }; } export async function setSettings(settings) { await chrome.storage.local.set({ [SETTINGS_KEY]: JSON.stringify(settings) }); } export async function getStoredTasks() { const result = await chrome.storage.local.get([TASKS_KEY]); const stored = result[TASKS_KEY]; if (!stored) return []; const parsed = typeof stored === 'string' ? JSON.parse(stored) : stored; return parsed.map((t) => ({ ...t, createdAt: new Date(t.createdAt), updatedAt: new Date(t.updatedAt), completedAt: t.completedAt ? new Date(t.completedAt) : null, dueDate: t.dueDate ? new Date(t.dueDate) : null, })); } export async function setStoredTasks(tasks) { await chrome.storage.local.set({ [TASKS_KEY]: JSON.stringify(tasks) }); } export async function getLastSync() { const result = await chrome.storage.local.get([SYNC_KEY]); return result[SYNC_KEY] || null; } export async function setLastSync(date) { await chrome.storage.local.set({ [SYNC_KEY]: date }); } export async function addDismissedTask(taskId) { const settings = await getSettings(); if (!settings.dismissedTasks.includes(taskId)) { settings.dismissedTasks.push(taskId); await setSettings(settings); } } export async function addArchivedTask(taskId) { const settings = await getSettings(); if (!settings.archivedTasks.includes(taskId)) { settings.archivedTasks.push(taskId); await setSettings(settings); } } export async function clearAllTasks() { await chrome.storage.local.remove([TASKS_KEY, SYNC_KEY]); }