import { supabase } from '@/lib/supabase'; import { isSyncEnabled } from '@/utils/syncUtils'; /** * 카테고리 예산을 Supabase에서 가져오기 */ export const loadCategoryBudgetsFromSupabase = async (userId: string): Promise | null> => { if (!userId || !isSyncEnabled()) return null; try { const { data, error } = await supabase .from('category_budgets') .select('*') .eq('user_id', userId); if (error) { console.error('카테고리 예산 조회 오류:', error); return null; } if (data && data.length > 0) { // 데이터를 카테고리->금액 형식의 객체로 변환 const categoryBudgets: Record = {}; data.forEach(item => { categoryBudgets[item.category] = item.amount; }); return categoryBudgets; } return null; } catch (error) { console.error('카테고리 예산 로드 오류:', error); return null; } }; /** * 카테고리 예산을 Supabase에 저장 */ export const saveCategoryBudgetsToSupabase = async ( userId: string, categoryBudgets: Record ): Promise => { if (!userId || !isSyncEnabled()) return false; try { // 기존 데이터 삭제 (다시 추가하기 위해) const { error: deleteError } = await supabase .from('category_budgets') .delete() .eq('user_id', userId); if (deleteError) { console.error('카테고리 예산 삭제 오류:', deleteError); return false; } // 새 데이터 추가 const budgetEntries = Object.entries(categoryBudgets).map(([category, amount]) => ({ user_id: userId, category, amount })); if (budgetEntries.length === 0) return true; const { error } = await supabase .from('category_budgets') .insert(budgetEntries); if (error) { console.error('카테고리 예산 추가 오류:', error); return false; } return true; } catch (error) { console.error('카테고리 예산 저장 오류:', error); return false; } };