stash/pkg/models/repository_performer.go

99 lines
3.1 KiB
Go

package models
import "context"
// PerformerGetter provides methods to get performers by ID.
type PerformerGetter interface {
// TODO - rename this to Find and remove existing method
FindMany(ctx context.Context, ids []int) ([]*Performer, error)
Find(ctx context.Context, id int) (*Performer, error)
}
// PerformerFinder provides methods to find performers.
type PerformerFinder interface {
PerformerGetter
FindBySceneID(ctx context.Context, sceneID int) ([]*Performer, error)
FindByImageID(ctx context.Context, imageID int) ([]*Performer, error)
FindByGalleryID(ctx context.Context, galleryID int) ([]*Performer, error)
FindByStashID(ctx context.Context, stashID StashID) ([]*Performer, error)
FindByStashIDStatus(ctx context.Context, hasStashID bool, stashboxEndpoint string) ([]*Performer, error)
FindByNames(ctx context.Context, names []string, nocase bool) ([]*Performer, error)
}
// PerformerQueryer provides methods to query performers.
type PerformerQueryer interface {
Query(ctx context.Context, performerFilter *PerformerFilterType, findFilter *FindFilterType) ([]*Performer, int, error)
QueryCount(ctx context.Context, galleryFilter *PerformerFilterType, findFilter *FindFilterType) (int, error)
}
type PerformerAutoTagQueryer interface {
PerformerQueryer
AliasLoader
// TODO - this interface is temporary until the filter schema can fully
// support the query needed
QueryForAutoTag(ctx context.Context, words []string) ([]*Performer, error)
}
// PerformerCounter provides methods to count performers.
type PerformerCounter interface {
Count(ctx context.Context) (int, error)
CountByTagID(ctx context.Context, tagID int) (int, error)
}
// PerformerCreator provides methods to create performers.
type PerformerCreator interface {
Create(ctx context.Context, newPerformer *Performer) error
}
// PerformerUpdater provides methods to update performers.
type PerformerUpdater interface {
Update(ctx context.Context, updatedPerformer *Performer) error
UpdatePartial(ctx context.Context, id int, updatedPerformer PerformerPartial) (*Performer, error)
UpdateImage(ctx context.Context, performerID int, image []byte) error
}
// PerformerDestroyer provides methods to destroy performers.
type PerformerDestroyer interface {
Destroy(ctx context.Context, id int) error
}
type PerformerFinderCreator interface {
PerformerFinder
PerformerCreator
}
type PerformerCreatorUpdater interface {
PerformerCreator
PerformerUpdater
}
// PerformerReader provides all methods to read performers.
type PerformerReader interface {
PerformerFinder
PerformerQueryer
PerformerAutoTagQueryer
PerformerCounter
AliasLoader
StashIDLoader
TagIDLoader
All(ctx context.Context) ([]*Performer, error)
GetImage(ctx context.Context, performerID int) ([]byte, error)
HasImage(ctx context.Context, performerID int) (bool, error)
}
// PerformerWriter provides all methods to modify performers.
type PerformerWriter interface {
PerformerCreator
PerformerUpdater
PerformerDestroyer
}
// PerformerReaderWriter provides all performer methods.
type PerformerReaderWriter interface {
PerformerReader
PerformerWriter
}