org.go

 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}