mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 12:24:38 +03:00
Model refactor (#3915)
* Add mockery config file * Move basic file/folder structs to models * Fix hack due to import loop * Move file interfaces to models * Move folder interfaces to models * Move scene interfaces to models * Move scene marker interfaces to models * Move image interfaces to models * Move gallery interfaces to models * Move gallery chapter interfaces to models * Move studio interfaces to models * Move movie interfaces to models * Move performer interfaces to models * Move tag interfaces to models * Move autotag interfaces to models * Regenerate mocks
This commit is contained in:
115
pkg/models/repository_scene.go
Normal file
115
pkg/models/repository_scene.go
Normal file
@@ -0,0 +1,115 @@
|
||||
package models
|
||||
|
||||
import "context"
|
||||
|
||||
// SceneGetter provides methods to get scenes by ID.
|
||||
type SceneGetter interface {
|
||||
// TODO - rename this to Find and remove existing method
|
||||
FindMany(ctx context.Context, ids []int) ([]*Scene, error)
|
||||
Find(ctx context.Context, id int) (*Scene, error)
|
||||
}
|
||||
|
||||
// SceneFinder provides methods to find scenes.
|
||||
type SceneFinder interface {
|
||||
SceneGetter
|
||||
FindByFingerprints(ctx context.Context, fp []Fingerprint) ([]*Scene, error)
|
||||
FindByChecksum(ctx context.Context, checksum string) ([]*Scene, error)
|
||||
FindByOSHash(ctx context.Context, oshash string) ([]*Scene, error)
|
||||
FindByPath(ctx context.Context, path string) ([]*Scene, error)
|
||||
FindByFileID(ctx context.Context, fileID FileID) ([]*Scene, error)
|
||||
FindByPrimaryFileID(ctx context.Context, fileID FileID) ([]*Scene, error)
|
||||
FindByPerformerID(ctx context.Context, performerID int) ([]*Scene, error)
|
||||
FindByGalleryID(ctx context.Context, performerID int) ([]*Scene, error)
|
||||
FindByMovieID(ctx context.Context, movieID int) ([]*Scene, error)
|
||||
FindDuplicates(ctx context.Context, distance int, durationDiff float64) ([][]*Scene, error)
|
||||
}
|
||||
|
||||
// SceneQueryer provides methods to query scenes.
|
||||
type SceneQueryer interface {
|
||||
Query(ctx context.Context, options SceneQueryOptions) (*SceneQueryResult, error)
|
||||
QueryCount(ctx context.Context, sceneFilter *SceneFilterType, findFilter *FindFilterType) (int, error)
|
||||
}
|
||||
|
||||
// SceneCounter provides methods to count scenes.
|
||||
type SceneCounter interface {
|
||||
Count(ctx context.Context) (int, error)
|
||||
CountByPerformerID(ctx context.Context, performerID int) (int, error)
|
||||
CountByMovieID(ctx context.Context, movieID int) (int, error)
|
||||
CountByFileID(ctx context.Context, fileID FileID) (int, error)
|
||||
CountByStudioID(ctx context.Context, studioID int) (int, error)
|
||||
CountByTagID(ctx context.Context, tagID int) (int, error)
|
||||
CountMissingChecksum(ctx context.Context) (int, error)
|
||||
CountMissingOSHash(ctx context.Context) (int, error)
|
||||
OCount(ctx context.Context) (int, error)
|
||||
OCountByPerformerID(ctx context.Context, performerID int) (int, error)
|
||||
PlayCount(ctx context.Context) (int, error)
|
||||
UniqueScenePlayCount(ctx context.Context) (int, error)
|
||||
}
|
||||
|
||||
// SceneCreator provides methods to create scenes.
|
||||
type SceneCreator interface {
|
||||
Create(ctx context.Context, newScene *Scene, fileIDs []FileID) error
|
||||
}
|
||||
|
||||
// SceneUpdater provides methods to update scenes.
|
||||
type SceneUpdater interface {
|
||||
Update(ctx context.Context, updatedScene *Scene) error
|
||||
UpdatePartial(ctx context.Context, id int, updatedScene ScenePartial) (*Scene, error)
|
||||
UpdateCover(ctx context.Context, sceneID int, cover []byte) error
|
||||
}
|
||||
|
||||
// SceneDestroyer provides methods to destroy scenes.
|
||||
type SceneDestroyer interface {
|
||||
Destroy(ctx context.Context, id int) error
|
||||
}
|
||||
|
||||
type SceneCreatorUpdater interface {
|
||||
SceneCreator
|
||||
SceneUpdater
|
||||
}
|
||||
|
||||
// SceneReader provides all methods to read scenes.
|
||||
type SceneReader interface {
|
||||
SceneFinder
|
||||
SceneQueryer
|
||||
SceneCounter
|
||||
|
||||
URLLoader
|
||||
FileIDLoader
|
||||
GalleryIDLoader
|
||||
PerformerIDLoader
|
||||
TagIDLoader
|
||||
SceneMovieLoader
|
||||
StashIDLoader
|
||||
VideoFileLoader
|
||||
|
||||
All(ctx context.Context) ([]*Scene, error)
|
||||
Wall(ctx context.Context, q *string) ([]*Scene, error)
|
||||
Size(ctx context.Context) (float64, error)
|
||||
Duration(ctx context.Context) (float64, error)
|
||||
PlayDuration(ctx context.Context) (float64, error)
|
||||
GetCover(ctx context.Context, sceneID int) ([]byte, error)
|
||||
HasCover(ctx context.Context, sceneID int) (bool, error)
|
||||
}
|
||||
|
||||
// SceneWriter provides all methods to modify scenes.
|
||||
type SceneWriter interface {
|
||||
SceneCreator
|
||||
SceneUpdater
|
||||
SceneDestroyer
|
||||
|
||||
AddFileID(ctx context.Context, id int, fileID FileID) error
|
||||
AddGalleryIDs(ctx context.Context, sceneID int, galleryIDs []int) error
|
||||
AssignFiles(ctx context.Context, sceneID int, fileID []FileID) error
|
||||
IncrementOCounter(ctx context.Context, id int) (int, error)
|
||||
DecrementOCounter(ctx context.Context, id int) (int, error)
|
||||
ResetOCounter(ctx context.Context, id int) (int, error)
|
||||
SaveActivity(ctx context.Context, sceneID int, resumeTime *float64, playDuration *float64) (bool, error)
|
||||
IncrementWatchCount(ctx context.Context, sceneID int) (int, error)
|
||||
}
|
||||
|
||||
// SceneReaderWriter provides all scene methods.
|
||||
type SceneReaderWriter interface {
|
||||
SceneReader
|
||||
SceneWriter
|
||||
}
|
||||
Reference in New Issue
Block a user