team.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// 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}