package service import ( "context" "errors" "financeiro-carvalho/internal/model" "financeiro-carvalho/internal/repository" ) var ErrInvalidSavingsGoal = errors.New("savings_goal_pct must be between 1 and 100") type SettingsService struct { repo repository.SettingsRepository } func NewSettingsService(repo repository.SettingsRepository) *SettingsService { return &SettingsService{repo: repo} } func (s *SettingsService) Get(ctx context.Context) (*model.UserSettings, error) { return s.repo.Get(ctx) } func (s *SettingsService) Update(ctx context.Context, in model.UserSettings) (*model.UserSettings, error) { if in.SavingsGoalPct < 1 || in.SavingsGoalPct > 100 { return nil, ErrInvalidSavingsGoal } return s.repo.Upsert(ctx, in) }