Support for assigning any image from a gallery as the cover (#5053)

Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
sezzim
2024-08-28 18:24:52 -07:00
committed by GitHub
parent 8133aa8c91
commit 68738bd227
23 changed files with 383 additions and 10 deletions

View File

@@ -710,6 +710,45 @@ func (t *scenesGroupsTable) modifyJoins(ctx context.Context, id int, v []models.
return nil
}
type imageGalleriesTable struct {
joinTable
}
func (t *imageGalleriesTable) setCover(ctx context.Context, id int, galleryID int) error {
if err := t.resetCover(ctx, galleryID); err != nil {
return err
}
table := t.table.table
q := dialect.Update(table).Prepared(true).Set(goqu.Record{
"cover": true,
}).Where(t.idColumn.Eq(id), table.Col(galleryIDColumn).Eq(galleryID))
if _, err := exec(ctx, q); err != nil {
return fmt.Errorf("setting cover flag in %s: %w", t.table.table.GetTable(), err)
}
return nil
}
func (t *imageGalleriesTable) resetCover(ctx context.Context, galleryID int) error {
table := t.table.table
q := dialect.Update(table).Prepared(true).Set(goqu.Record{
"cover": false,
}).Where(
table.Col(galleryIDColumn).Eq(galleryID),
table.Col("cover").Eq(true),
)
if _, err := exec(ctx, q); err != nil {
return fmt.Errorf("unsetting cover flags in %s: %w", t.table.table.GetTable(), err)
}
return nil
}
type relatedFilesTable struct {
table
}