1package store
2
3import (
4 "context"
5
6 "github.com/charmbracelet/soft-serve/pkg/db"
7 "github.com/charmbracelet/soft-serve/pkg/db/models"
8)
9
10// LFSStore is the interface for the LFS store.
11type LFSStore interface {
12 CreateLFSObject(ctx context.Context, h db.Handler, repoID int64, oid string, size int64) error
13 GetLFSObjectByOid(ctx context.Context, h db.Handler, repoID int64, oid string) (models.LFSObject, error)
14 GetLFSObjects(ctx context.Context, h db.Handler, repoID int64) ([]models.LFSObject, error)
15 GetLFSObjectsByName(ctx context.Context, h db.Handler, name string) ([]models.LFSObject, error)
16 DeleteLFSObjectByOid(ctx context.Context, h db.Handler, repoID int64, oid string) error
17
18 CreateLFSLockForUser(ctx context.Context, h db.Handler, repoID int64, userID int64, path string, refname string) error
19 GetLFSLocks(ctx context.Context, h db.Handler, repoID int64, page int, limit int) ([]models.LFSLock, error)
20 GetLFSLocksWithCount(ctx context.Context, h db.Handler, repoID int64, page int, limit int) ([]models.LFSLock, int64, error)
21 GetLFSLocksForUser(ctx context.Context, h db.Handler, repoID int64, userID int64) ([]models.LFSLock, error)
22 GetLFSLockForPath(ctx context.Context, h db.Handler, repoID int64, path string) (models.LFSLock, error)
23 GetLFSLockForUserPath(ctx context.Context, h db.Handler, repoID int64, userID int64, path string) (models.LFSLock, error)
24 GetLFSLockByID(ctx context.Context, h db.Handler, id int64) (models.LFSLock, error)
25 GetLFSLockForUserByID(ctx context.Context, h db.Handler, repoID int64, userID int64, id int64) (models.LFSLock, error)
26 DeleteLFSLock(ctx context.Context, h db.Handler, repoID int64, id int64) error
27 DeleteLFSLockForUserByID(ctx context.Context, h db.Handler, repoID int64, userID int64, id int64) error
28}