1package store
 2
 3import (
 4	"context"
 5
 6	"github.com/charmbracelet/soft-serve/server/access"
 7	"github.com/charmbracelet/soft-serve/server/db"
 8	"github.com/charmbracelet/soft-serve/server/db/models"
 9)
10
11// CollaboratorStore is an interface for managing collaborators.
12type CollaboratorStore interface {
13	GetCollabByUsernameAndRepo(ctx context.Context, h db.Handler, username string, repo string) (models.Collab, error)
14	AddCollabByUsernameAndRepo(ctx context.Context, h db.Handler, username string, repo string, level access.AccessLevel) error
15	RemoveCollabByUsernameAndRepo(ctx context.Context, h db.Handler, username string, repo string) error
16	ListCollabsByRepo(ctx context.Context, h db.Handler, repo string) ([]models.Collab, error)
17	ListCollabsByRepoAsUsers(ctx context.Context, h db.Handler, repo string) ([]models.User, error)
18}