feat(schema): #48 monthly_budget em categories + category_id em achievements

- Migration 018: ADD COLUMN monthly_budget NUMERIC(12,2) em categories
- Migration 018: ADD COLUMN category_id INTEGER REFERENCES categories(id) ON DELETE CASCADE em achievements
- Remove conquistas hardcoded veleiro_under_500 e health_3months do banco
- Reset game state do profile_id=1
- Atualiza CategoryRepository, CategoryInput e Category model para incluir monthly_budget
This commit is contained in:
2026-05-28 23:26:39 -03:00
parent 85bb60ae5a
commit f60ca423d0
9 changed files with 79 additions and 48 deletions
+6 -3
View File
@@ -14,11 +14,12 @@ import (
)
type CategoryHandler struct {
svc *service.CategoryService
svc *service.CategoryService
gameSvc *service.GameService
}
func NewCategoryHandler(svc *service.CategoryService) *CategoryHandler {
return &CategoryHandler{svc: svc}
func NewCategoryHandler(svc *service.CategoryService, gameSvc *service.GameService) *CategoryHandler {
return &CategoryHandler{svc: svc, gameSvc: gameSvc}
}
func (h *CategoryHandler) List(w http.ResponseWriter, r *http.Request) {
@@ -44,6 +45,7 @@ func (h *CategoryHandler) Create(w http.ResponseWriter, r *http.Request) {
respondError(w, http.StatusBadRequest, err.Error())
return
}
h.gameSvc.OnCategoryBudgetSet(r.Context(), cat.ID, cat.Name, in.MonthlyBudget)
respondJSON(w, http.StatusCreated, cat)
}
@@ -67,6 +69,7 @@ func (h *CategoryHandler) Update(w http.ResponseWriter, r *http.Request) {
respondError(w, http.StatusBadRequest, err.Error())
return
}
h.gameSvc.OnCategoryBudgetSet(r.Context(), cat.ID, cat.Name, in.MonthlyBudget)
respondJSON(w, http.StatusOK, cat)
}