
// 예산 관련 타입 정의
export type BudgetPeriod = 'daily' | 'weekly' | 'monthly';

export interface BudgetPeriodData {
  targetAmount: number;
  spentAmount: number;
  remainingAmount: number;
}

export interface BudgetData {
  daily: BudgetPeriodData;
  weekly: BudgetPeriodData;
  monthly: BudgetPeriodData;
}

export interface CategoryBudget {
  title: string;
  current: number;
  total: number;
}

// BudgetContext 타입 정의
export interface BudgetContextType {
  transactions: Transaction[];
  categoryBudgets: Record<string, number>;
  budgetData: BudgetData;
  selectedTab: BudgetPeriod;
  setSelectedTab: (tab: BudgetPeriod) => void;
  updateTransaction: (updatedTransaction: Transaction) => void;
  handleBudgetGoalUpdate: (type: BudgetPeriod, amount: number, newCategoryBudgets?: Record<string, number>) => void;
  getCategorySpending: () => CategoryBudget[];
}

// Transaction 타입 (기존 TransactionCard에서 가져옴)
export interface Transaction {
  id: string;
  title: string;
  amount: number;
  date: string;
  category: string;
  type: 'income' | 'expense';
  notes?: string; // notes 필드를 옵셔널로 추가
}
