1package store
2
3import (
4 "context"
5
6 "github.com/charmbracelet/soft-serve/pkg/access"
7 "github.com/charmbracelet/soft-serve/pkg/db"
8 "github.com/charmbracelet/soft-serve/pkg/db/models"
9)
10
11// OrgStore is a store for organizations.
12type OrgStore interface {
13 CreateOrg(ctx context.Context, h db.Handler, user int64, name, email string) (models.Organization, error)
14 ListOrgs(ctx context.Context, h db.Handler, user int64) ([]models.Organization, error)
15 GetOrgByID(ctx context.Context, h db.Handler, user, id int64) (models.Organization, error)
16 FindOrgByHandle(ctx context.Context, h db.Handler, user int64, name string) (models.Organization, error)
17 DeleteOrgByID(ctx context.Context, h db.Handler, user, id int64) error
18 AddUserToOrg(ctx context.Context, h db.Handler, org, user int64, lvl access.AccessLevel) error
19 RemoveUserFromOrg(ctx context.Context, h db.Handler, org, user int64) error
20 UpdateUserAccessInOrg(ctx context.Context, h db.Handler, org, user int64, lvl access.AccessLevel) error
21 UpdateOrgContactEmail(ctx context.Context, h db.Handler, org int64, email string) error
22 // TODO: rename org?
23 // XXX: what else?
24}