stash/pkg/models/repository_movie.go
DingDongSoLong4 c364346a59
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
2023-09-01 10:39:29 +10:00

86 lines
2.6 KiB
Go

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
}