mirror of https://github.com/stashapp/stash.git
89 lines
2.6 KiB
Go
89 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
|
|
URLLoader
|
|
TagIDLoader
|
|
|
|
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
|
|
}
|