Files
carvalho-finances/apps/api/internal/model/dashboard.go
T
Mlcavalho1andClaude Sonnet 4.6 1d59cb2a0e feat: #45 meta de poupança configurável + conquistas genéricas
- 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]>
2026-05-28 22:32:08 -03:00

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"`
}