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// RepositoryStore is an interface for managing repositories.
11type RepositoryStore interface {
12	GetRepoByName(ctx context.Context, h db.Handler, name string) (models.Repo, error)
13	GetAllRepos(ctx context.Context, h db.Handler) ([]models.Repo, error)
14	GetUserRepos(ctx context.Context, h db.Handler, userID int64) ([]models.Repo, error)
15	CreateRepo(ctx context.Context, h db.Handler, name string, userID int64, projectName string, description string, isPrivate bool, isHidden bool, isMirror bool) error
16	DeleteRepoByName(ctx context.Context, h db.Handler, name string) error
17	SetRepoNameByName(ctx context.Context, h db.Handler, name string, newName string) error
18
19	GetRepoProjectNameByName(ctx context.Context, h db.Handler, name string) (string, error)
20	SetRepoProjectNameByName(ctx context.Context, h db.Handler, name string, projectName string) error
21	GetRepoDescriptionByName(ctx context.Context, h db.Handler, name string) (string, error)
22	SetRepoDescriptionByName(ctx context.Context, h db.Handler, name string, description string) error
23	GetRepoIsPrivateByName(ctx context.Context, h db.Handler, name string) (bool, error)
24	SetRepoIsPrivateByName(ctx context.Context, h db.Handler, name string, isPrivate bool) error
25	GetRepoIsHiddenByName(ctx context.Context, h db.Handler, name string) (bool, error)
26	SetRepoIsHiddenByName(ctx context.Context, h db.Handler, name string, isHidden bool) error
27	GetRepoIsMirrorByName(ctx context.Context, h db.Handler, name string) (bool, error)
28}