- Nova tabela user_settings com savings_goal_pct (default 40%) - API GET /api/settings, PUT /api/settings - DashboardService inclui savings_goal_pct no payload - DashboardHandler dispara savings_checked com goal configurado - GameService.NotifyAction: checa pct >= goal (sem hardcode de 40%) - SettingsView: painel META DE POUPANÇA com input configurável - HomeView: widget mostra meta dinâmica (META: X%) e usa savingsGoal - stores/settings.ts: store com fetch e update Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
41 lines
1.6 KiB
Go
41 lines
1.6 KiB
Go
package model
|
|
|
|
type CategoryTotal struct {
|
|
CategoryID *int `json:"category_id"`
|
|
CategoryName string `json:"category_name"`
|
|
Color string `json:"color"`
|
|
Total float64 `json:"total"`
|
|
}
|
|
|
|
type MonthEvolution struct {
|
|
Month string `json:"month"`
|
|
Income float64 `json:"income"`
|
|
Expenses float64 `json:"expenses"`
|
|
Saved float64 `json:"saved"`
|
|
}
|
|
|
|
type RecentTransaction struct {
|
|
ID int `json:"id"`
|
|
Date string `json:"date"`
|
|
Description string `json:"description"`
|
|
CategoryName string `json:"category_name"`
|
|
Amount float64 `json:"amount"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
type DashboardData struct {
|
|
Month string `json:"month"`
|
|
TotalIncome float64 `json:"total_income"`
|
|
TotalExpenses float64 `json:"total_expenses"`
|
|
SavingsPct float64 `json:"savings_pct"`
|
|
SavingsGoalPct float64 `json:"savings_goal_pct"`
|
|
TotalPatrimony float64 `json:"total_patrimony"`
|
|
ByCategory []CategoryTotal `json:"by_category"`
|
|
MonthlyEvolution []MonthEvolution `json:"monthly_evolution"`
|
|
RecentTransactions []RecentTransaction `json:"recent_transactions"`
|
|
PendingRecurring int `json:"pending_recurring"`
|
|
PendingIncomeRecurrings []PendingIncome `json:"pending_income_recurrings"`
|
|
CurrentBills []CreditBill `json:"current_bills"`
|
|
PendingBillImports []PendingBillImport `json:"pending_bill_imports"`
|
|
}
|