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