
import { useEffect } from 'react';
import { BudgetData, Transaction } from '../types';

// 예산 데이터 자동 백업 훅
export const useBudgetBackup = (
  budgetData: BudgetData, 
  categoryBudgets: Record<string, number>, 
  transactions: Transaction[]
) => {
  // 디버깅 및 자동 백업을 위한 효과
  useEffect(() => {
    console.log('BudgetState 훅 - 현재 상태:');
    console.log('- 예산 데이터:', budgetData);
    console.log('- 카테고리 예산:', categoryBudgets);
    console.log('- 트랜잭션 수:', transactions.length);
    
    // 데이터 손실 방지를 위한 타이머 설정
    const saveTimer = setInterval(() => {
      // 저장된 데이터 유효성 검사 및 백업
      try {
        const storedBudgetData = localStorage.getItem('budgetData');
        const storedCategoryBudgets = localStorage.getItem('categoryBudgets');
        const storedTransactions = localStorage.getItem('transactions');
        
        if (storedBudgetData) {
          localStorage.setItem('budgetData_backup_auto', storedBudgetData);
        }
        
        if (storedCategoryBudgets) {
          localStorage.setItem('categoryBudgets_backup_auto', storedCategoryBudgets);
        }
        
        if (storedTransactions) {
          localStorage.setItem('transactions_backup_auto', storedTransactions);
        }
      } catch (error) {
        console.error('자동 백업 중 오류:', error);
      }
    }, 5000); // 5초마다 백업
    
    return () => {
      clearInterval(saveTimer);
    };
  }, [budgetData, categoryBudgets, transactions]);
};
