aboutsummaryrefslogtreecommitdiff
path: root/src/types/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/types/index.ts')
-rw-r--r--src/types/index.ts98
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;
+ };
+}