diff --git a/budget.go b/budget.go index 68b13b4..c0084a3 100644 --- a/budget.go +++ b/budget.go @@ -11,7 +11,14 @@ type Budget struct { LastModification time.Time } +// UserBudget represents the relation between users and budgets +type UserBudget struct { + UserID string `sql:",pk"` + BudgetID string `sql:",pk"` +} + // BudgetService provides Methods for CRUD of Budgets type BudgetService interface { Budget(id string) (Budget, error) + BudgetsForUser(user User) ([]Budget, error) } diff --git a/postgres/budgetservice.go b/postgres/budgetservice.go index 1a0f355..1c20c32 100644 --- a/postgres/budgetservice.go +++ b/postgres/budgetservice.go @@ -11,3 +11,7 @@ func (s *Repository) Budget(id string) (*budgeteer.Budget, error) { } return b, nil } + +func (s *Repository) BudgetsForUser(user budgeteer.User) ([]budgeteer.Budget, error) { + +} diff --git a/postgres/user_budgets.sql b/postgres/user_budgets.sql new file mode 100644 index 0000000..c6b9cc6 --- /dev/null +++ b/postgres/user_budgets.sql @@ -0,0 +1,4 @@ +CREATE TABLE user_budgets ( + user_id char(26), + budget_id char(26) +); \ No newline at end of file