From 2c2dfba45357bbd205a59145ae55a2779c911ae0 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Fri, 14 Aug 2026 15:06:35 -0300 Subject: remake Signed-off-by: Lucas Faria Mendes --- src/types/index.ts | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/types/index.ts (limited to 'src/types') 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; + }; +} -- cgit v1.2.3