mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +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:
86
pkg/models/repository_movie.go
Normal file
86
pkg/models/repository_movie.go
Normal file
@@ -0,0 +1,86 @@
|
||||
package models
|
||||
|
||||
import "context"
|
||||
|
||||
// MovieGetter provides methods to get movies by ID.
|
||||
type MovieGetter interface {
|
||||
// TODO - rename this to Find and remove existing method
|
||||
FindMany(ctx context.Context, ids []int) ([]*Movie, error)
|
||||
Find(ctx context.Context, id int) (*Movie, error)
|
||||
}
|
||||
|
||||
// MovieFinder provides methods to find movies.
|
||||
type MovieFinder interface {
|
||||
MovieGetter
|
||||
FindByPerformerID(ctx context.Context, performerID int) ([]*Movie, error)
|
||||
FindByStudioID(ctx context.Context, studioID int) ([]*Movie, error)
|
||||
FindByName(ctx context.Context, name string, nocase bool) (*Movie, error)
|
||||
FindByNames(ctx context.Context, names []string, nocase bool) ([]*Movie, error)
|
||||
}
|
||||
|
||||
// MovieQueryer provides methods to query movies.
|
||||
type MovieQueryer interface {
|
||||
Query(ctx context.Context, movieFilter *MovieFilterType, findFilter *FindFilterType) ([]*Movie, int, error)
|
||||
QueryCount(ctx context.Context, movieFilter *MovieFilterType, findFilter *FindFilterType) (int, error)
|
||||
}
|
||||
|
||||
// MovieCounter provides methods to count movies.
|
||||
type MovieCounter interface {
|
||||
Count(ctx context.Context) (int, error)
|
||||
CountByPerformerID(ctx context.Context, performerID int) (int, error)
|
||||
CountByStudioID(ctx context.Context, studioID int) (int, error)
|
||||
}
|
||||
|
||||
// MovieCreator provides methods to create movies.
|
||||
type MovieCreator interface {
|
||||
Create(ctx context.Context, newMovie *Movie) error
|
||||
}
|
||||
|
||||
// MovieUpdater provides methods to update movies.
|
||||
type MovieUpdater interface {
|
||||
Update(ctx context.Context, updatedMovie *Movie) error
|
||||
UpdatePartial(ctx context.Context, id int, updatedMovie MoviePartial) (*Movie, error)
|
||||
UpdateFrontImage(ctx context.Context, movieID int, frontImage []byte) error
|
||||
UpdateBackImage(ctx context.Context, movieID int, backImage []byte) error
|
||||
}
|
||||
|
||||
// MovieDestroyer provides methods to destroy movies.
|
||||
type MovieDestroyer interface {
|
||||
Destroy(ctx context.Context, id int) error
|
||||
}
|
||||
|
||||
type MovieCreatorUpdater interface {
|
||||
MovieCreator
|
||||
MovieUpdater
|
||||
}
|
||||
|
||||
type MovieFinderCreator interface {
|
||||
MovieFinder
|
||||
MovieCreator
|
||||
}
|
||||
|
||||
// MovieReader provides all methods to read movies.
|
||||
type MovieReader interface {
|
||||
MovieFinder
|
||||
MovieQueryer
|
||||
MovieCounter
|
||||
|
||||
All(ctx context.Context) ([]*Movie, error)
|
||||
GetFrontImage(ctx context.Context, movieID int) ([]byte, error)
|
||||
HasFrontImage(ctx context.Context, movieID int) (bool, error)
|
||||
GetBackImage(ctx context.Context, movieID int) ([]byte, error)
|
||||
HasBackImage(ctx context.Context, movieID int) (bool, error)
|
||||
}
|
||||
|
||||
// MovieWriter provides all methods to modify movies.
|
||||
type MovieWriter interface {
|
||||
MovieCreator
|
||||
MovieUpdater
|
||||
MovieDestroyer
|
||||
}
|
||||
|
||||
// MovieReaderWriter provides all movie methods.
|
||||
type MovieReaderWriter interface {
|
||||
MovieReader
|
||||
MovieWriter
|
||||
}
|
||||
Reference in New Issue
Block a user