2020-09-15 07:28:53 +00:00
|
|
|
package models
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/jmoiron/sqlx"
|
|
|
|
)
|
|
|
|
|
|
|
|
type StudioReader interface {
|
|
|
|
Find(id int) (*Studio, error)
|
|
|
|
FindMany(ids []int) ([]*Studio, error)
|
|
|
|
// FindChildren(id int) ([]*Studio, error)
|
|
|
|
// FindBySceneID(sceneID int) (*Studio, error)
|
2020-09-20 08:36:02 +00:00
|
|
|
FindByName(name string, nocase bool) (*Studio, error)
|
2020-09-15 07:28:53 +00:00
|
|
|
// Count() (int, error)
|
|
|
|
All() ([]*Studio, error)
|
|
|
|
// AllSlim() ([]*Studio, error)
|
|
|
|
// Query(studioFilter *StudioFilterType, findFilter *FindFilterType) ([]*Studio, int)
|
|
|
|
GetStudioImage(studioID int) ([]byte, error)
|
|
|
|
}
|
|
|
|
|
|
|
|
type StudioWriter interface {
|
2020-09-20 08:36:02 +00:00
|
|
|
Create(newStudio Studio) (*Studio, error)
|
|
|
|
Update(updatedStudio StudioPartial) (*Studio, error)
|
|
|
|
UpdateFull(updatedStudio Studio) (*Studio, error)
|
2020-09-15 07:28:53 +00:00
|
|
|
// Destroy(id string) error
|
2020-09-20 08:36:02 +00:00
|
|
|
UpdateStudioImage(studioID int, image []byte) error
|
2020-09-15 07:28:53 +00:00
|
|
|
// DestroyStudioImage(studioID int) error
|
|
|
|
}
|
|
|
|
|
|
|
|
type StudioReaderWriter interface {
|
|
|
|
StudioReader
|
|
|
|
StudioWriter
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewStudioReaderWriter(tx *sqlx.Tx) StudioReaderWriter {
|
|
|
|
return &studioReaderWriter{
|
|
|
|
tx: tx,
|
|
|
|
qb: NewStudioQueryBuilder(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
type studioReaderWriter struct {
|
|
|
|
tx *sqlx.Tx
|
|
|
|
qb StudioQueryBuilder
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *studioReaderWriter) Find(id int) (*Studio, error) {
|
|
|
|
return t.qb.Find(id, t.tx)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *studioReaderWriter) FindMany(ids []int) ([]*Studio, error) {
|
|
|
|
return t.qb.FindMany(ids)
|
|
|
|
}
|
|
|
|
|
2020-09-20 08:36:02 +00:00
|
|
|
func (t *studioReaderWriter) FindByName(name string, nocase bool) (*Studio, error) {
|
|
|
|
return t.qb.FindByName(name, t.tx, nocase)
|
|
|
|
}
|
|
|
|
|
2020-09-15 07:28:53 +00:00
|
|
|
func (t *studioReaderWriter) All() ([]*Studio, error) {
|
|
|
|
return t.qb.All()
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *studioReaderWriter) GetStudioImage(studioID int) ([]byte, error) {
|
|
|
|
return t.qb.GetStudioImage(studioID, t.tx)
|
|
|
|
}
|
2020-09-20 08:36:02 +00:00
|
|
|
|
|
|
|
func (t *studioReaderWriter) Create(newStudio Studio) (*Studio, error) {
|
|
|
|
return t.qb.Create(newStudio, t.tx)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *studioReaderWriter) Update(updatedStudio StudioPartial) (*Studio, error) {
|
|
|
|
return t.qb.Update(updatedStudio, t.tx)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *studioReaderWriter) UpdateFull(updatedStudio Studio) (*Studio, error) {
|
|
|
|
return t.qb.UpdateFull(updatedStudio, t.tx)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *studioReaderWriter) UpdateStudioImage(studioID int, image []byte) error {
|
|
|
|
return t.qb.UpdateStudioImage(studioID, image, t.tx)
|
|
|
|
}
|