import { supabase } from '@/lib/supabase'; import { isSyncEnabled } from './syncSettings'; import { toast } from '@/hooks/useToast.wrapper'; /** * Supabase에 저장된 사용자의 모든 데이터 삭제 */ export const clearCloudData = async (userId: string): Promise => { if (!userId || !isSyncEnabled()) return false; try { console.log('클라우드 데이터 초기화 시작...'); // 트랜잭션 데이터 삭제 const { error: txError } = await supabase .from('transactions') .delete() .eq('user_id', userId); if (txError) { console.error('클라우드 트랜잭션 삭제 오류:', txError); throw txError; } // 예산 데이터 삭제 (budgets 테이블이 있는 경우) try { const { error: budgetError } = await supabase .from('budgets') .delete() .eq('user_id', userId); if (budgetError) { console.error('클라우드 예산 삭제 오류:', budgetError); // 이 오류는 심각하지 않으므로 진행 계속 } } catch (e) { console.log('budgets 테이블이 없거나 삭제 중 오류 발생:', e); } // 카테고리 예산 데이터 삭제 (category_budgets 테이블이 있는 경우) try { const { error: catBudgetError } = await supabase .from('category_budgets') .delete() .eq('user_id', userId); if (catBudgetError) { console.error('클라우드 카테고리 예산 삭제 오류:', catBudgetError); // 이 오류는 심각하지 않으므로 진행 계속 } } catch (e) { console.log('category_budgets 테이블이 없거나 삭제 중 오류 발생:', e); } // 동기화 설정 초기화 및 마지막 동기화 시간 초기화 localStorage.removeItem('lastSync'); localStorage.setItem('syncEnabled', 'false'); // 동기화 설정을 OFF로 변경 console.log('클라우드 데이터 초기화 완료 및 동기화 설정 OFF'); return true; } catch (error) { console.error('클라우드 데이터 초기화 중 오류 발생:', error); toast({ title: "클라우드 데이터 초기화 실패", description: "서버에서 데이터를 삭제하는 중 문제가 발생했습니다.", variant: "destructive" }); return false; } };