export interface User { id: number; name: string; gross_salary: number; net_salary_override: number | null; created_at: string; updated_at: string; } export interface Income { id: number; user_id: number; gross_salary: number; calculated_net_salary: number; effective_net_salary: number; reference_month: number; reference_year: number; description: string | null; created_at: string; updated_at: string; } export type Category = | 'moradia' | 'alimentação' | 'transporte' | 'saúde' | 'educação' | 'lazer' | 'serviços' | 'outros'; export interface RecurringExpense { id: number; user_id: number; name: string; amount: number; category: Category; type: 'expense' | 'income'; due_day: number | null; is_active: boolean; starts_at: string; ends_at: string | null; created_at: string; updated_at: string; } export interface OneTimeExpense { id: number; user_id: number; name: string; amount: number; category: Category; type: 'expense' | 'income'; expense_date: string; notes: string | null; created_at: string; updated_at: string; } export interface DashboardExpenseItem { id: number; name: string; amount: number; category: string; type: 'expense' | 'income'; is_active?: boolean; expense_date?: string; } export interface DashboardData { user: { id: number; name: string; gross_salary: number; net_salary_override: number | null; }; period: { month: number; year: number }; salary: { gross: number; calculated_net: number; effective_net: number; inss_discount: number; irrf_discount: number; has_override: boolean; }; expenses: { recurring_total: number; one_time_total: number; total: number; recurring_list: DashboardExpenseItem[]; one_time_list: DashboardExpenseItem[]; }; balance: { available: number; expense_ratio: number; }; }