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// TeamStore is a store for teams.
12type TeamStore interface {
13 CreateTeam(ctx context.Context, h db.Handler, user, org int64, name string) (models.Team, error)
14 ListTeams(ctx context.Context, h db.Handler, user int64) ([]models.Team, error)
15 GetTeamByID(ctx context.Context, h db.Handler, user, id int64) (models.Team, error)
16 FindTeamByOrgName(ctx context.Context, h db.Handler, user, org int64, name string) (models.Team, error)
17 FindTeamByName(ctx context.Context, h db.Handler, user int64, name string) ([]models.Team, error)
18 DeleteTeamByID(ctx context.Context, h db.Handler, id int64) error
19 AddUserToTeam(ctx context.Context, h db.Handler, team, user int64, lvl access.AccessLevel) error
20 RemoveUserFromTeam(ctx context.Context, h db.Handler, team, user int64) error
21 UpdateUserAccessInTeam(ctx context.Context, h db.Handler, team, user int64, lvl access.AccessLevel) error
22}