diff options
Diffstat (limited to 'src/types/index.ts')
| -rw-r--r-- | src/types/index.ts | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..7554419 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,98 @@ +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; + }; +} |