package main import "time" type User struct { ID int `json:"id"` Name string `json:"name"` } type UserWithAllowance struct { ID int `json:"id"` Name string `json:"name"` Allowance float64 `json:"allowance"` } type History struct { Allowance float64 `json:"allowance"` Timestamp time.Time `json:"timestamp"` } type PostHistory struct { Allowance float64 `json:"allowance"` } // Task represents a task in the system. type Task struct { ID int `json:"id"` Name string `json:"name"` Reward float64 `json:"reward"` Assigned *int `json:"assigned"` // Pointer to allow null } type Allowance struct { ID int `json:"id"` Name string `json:"name"` Target float64 `json:"target"` Progress float64 `json:"progress"` Weight float64 `json:"weight"` Colour string `json:"colour"` } type CreateAllowanceRequest struct { Name string `json:"name"` Target float64 `json:"target"` Weight float64 `json:"weight"` Colour string `json:"colour"` } type UpdateAllowanceRequest struct { Name string `json:"name"` Target float64 `json:"target"` Weight float64 `json:"weight"` Colour string `json:"colour"` } type BulkUpdateAllowanceRequest struct { ID int `json:"id"` Weight float64 `json:"weight"` } type CreateGoalResponse struct { ID int `json:"id"` } type CreateTaskRequest struct { Name string `json:"name" binding:"required"` Reward float64 `json:"reward"` Assigned *int `json:"assigned"` } type CreateTaskResponse struct { ID int `json:"id"` }