
import { useState } from 'react';
import { Transaction } from '@/components/TransactionCard';
import { getCurrentMonth } from './dateUtils';

/**
 * 트랜잭션 관련 상태 관리 훅
 * 트랜잭션, 필터링, 로딩 상태 등을 관리합니다.
 */
export const useTransactionsState = () => {
  // 트랜잭션 상태
  const [transactions, setTransactions] = useState<Transaction[]>([]);
  const [filteredTransactions, setFilteredTransactions] = useState<Transaction[]>([]);
  
  // 필터링 상태
  const [selectedMonth, setSelectedMonth] = useState(getCurrentMonth());
  const [searchQuery, setSearchQuery] = useState('');
  
  // 로딩 및 에러 상태
  const [isLoading, setIsLoading] = useState(true);
  const [error, setError] = useState<string | null>(null);
  
  // 예산 상태
  const [totalBudget, setTotalBudget] = useState(0);
  
  // 새로고침 키
  const [refreshKey, setRefreshKey] = useState(0);

  return {
    // 상태
    transactions,
    setTransactions,
    filteredTransactions,
    setFilteredTransactions,
    
    // 필터링 상태
    selectedMonth,
    setSelectedMonth,
    searchQuery,
    setSearchQuery,
    
    // 로딩 및 에러 상태
    isLoading,
    setIsLoading,
    error,
    setError,
    
    // 예산 상태
    totalBudget,
    setTotalBudget,
    
    // 새로고침 키
    refreshKey,
    setRefreshKey
  };
};
