Commit Graph

6 Commits

Author SHA1 Message Date
84d5b76a8a feat(07-01): add QuickAddItem migration, model, and query functions
- Create 003_quick_add_library.sql with quick_add_items table and user index
- Add QuickAddItem struct to models.go following Category pattern
- Add ListQuickAddItems, CreateQuickAddItem, UpdateQuickAddItem, DeleteQuickAddItem to queries.go
2026-03-12 13:33:53 +01:00
387507b468 feat(05-02): wire template routes and budget generate endpoint in router
- Add /api/template route group: GET, PUT /, POST/PUT/DELETE items, PUT items/reorder
- Add POST /api/budgets/generate before /{id} routes to avoid chi treating 'generate' as an id param
- /items/reorder registered before /items/{itemId} for correct static-before-param routing
2026-03-12 12:10:37 +01:00
ceca2fc71f feat(05-02): add template handlers and budget generation endpoint
- Add GetTemplate, UpdateTemplateName, CreateTemplateItem, UpdateTemplateItem, DeleteTemplateItem, ReorderTemplateItems handlers
- Add GenerateBudget handler with 409 BudgetExistsError response including budget_id
- Handler-level validation: one_off items rejected for template routes, fixed items require budgeted_amount
- Month format validated via time.Parse before calling query layer
2026-03-12 12:10:21 +01:00
f9dd40984c feat(05-01): template query functions and updated budget item queries with item_tier
- Add BudgetExistsError struct and ErrBudgetExists sentinel
- Update GetBudgetWithItems, CopyBudgetItems to include item_tier
- Update CreateBudgetItem/UpdateBudgetItem signatures to accept itemTier (default one_off)
- Add GetTemplate, UpdateTemplateName, CreateTemplateItem, UpdateTemplateItem, DeleteTemplateItem
- Add ReorderTemplateItems with transaction
- Add GenerateBudgetFromTemplate with duplicate-month detection and locale-aware naming
- Update handlers to pass ItemTier from request body (Rule 3 fix - blocking compile)
2026-03-12 12:06:43 +01:00
b3082ca14f feat(05-01): migration SQL and Go model types for template system
- Create 002_templates.sql: item_tier enum, ALTER budget_items, templates and template_items tables with CHECK constraint
- Add ItemTier type with fixed/variable/one_off constants to models.go
- Add ItemTier field to BudgetItem struct
- Add Template, TemplateItem, TemplateDetail structs
2026-03-12 12:05:01 +01:00
04cbb846d1 Init 2026-03-06 19:42:15 +00:00