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// 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) ([]models.LFSLock, error)
20 GetLFSLocksForUser(ctx context.Context, h db.Handler, repoID int64, userID int64) ([]models.LFSLock, error)
21 GetLFSLocksForPath(ctx context.Context, h db.Handler, repoID int64, path string) ([]models.LFSLock, error)
22 GetLFSLockForUserPath(ctx context.Context, h db.Handler, repoID int64, userID int64, path string) (models.LFSLock, error)
23 GetLFSLockByID(ctx context.Context, h db.Handler, id string) (models.LFSLock, error)
24 GetLFSLockForUserByID(ctx context.Context, h db.Handler, userID int64, id string) (models.LFSLock, error)
25 DeleteLFSLockForUserByID(ctx context.Context, h db.Handler, userID int64, id string) error
26}