Add bulk update markers interface (#6210)

This commit is contained in:
WithoutPants
2025-11-06 16:01:24 +11:00
committed by GitHub
parent 2a2a730296
commit 8c4b607454
6 changed files with 151 additions and 3 deletions

View File

@@ -30,6 +30,7 @@ type SceneMarkerPartial struct {
Seconds OptionalFloat64
EndSeconds OptionalFloat64
PrimaryTagID OptionalInt
TagIDs *UpdateIDs
SceneID OptionalInt
CreatedAt OptionalTime
UpdatedAt OptionalTime

View File

@@ -15,7 +15,11 @@ import (
"github.com/stashapp/stash/pkg/models"
)
const sceneMarkerTable = "scene_markers"
const (
sceneMarkerTable = "scene_markers"
sceneMarkersTagsTable = "scene_markers_tags"
sceneMarkerIDColumn = "scene_marker_id"
)
const countSceneMarkersForTagQuery = `
SELECT scene_markers.id FROM scene_markers
@@ -101,8 +105,8 @@ var (
},
tags: joinRepository{
repository: repository{
tableName: "scene_markers_tags",
idColumn: "scene_marker_id",
tableName: sceneMarkersTagsTable,
idColumn: sceneMarkerIDColumn,
},
fkColumn: tagIDColumn,
},
@@ -157,6 +161,12 @@ func (qb *SceneMarkerStore) UpdatePartial(ctx context.Context, id int, partial m
}
}
if partial.TagIDs != nil {
if err := sceneMarkersTagsTableMgr.modifyJoins(ctx, id, partial.TagIDs.IDs, partial.TagIDs.Mode); err != nil {
return nil, fmt.Errorf("modifying scene marker tags: %w", err)
}
}
return qb.find(ctx, id)
}

View File

@@ -28,6 +28,8 @@ var (
scenesGroupsJoinTable = goqu.T(groupsScenesTable)
scenesURLsJoinTable = goqu.T(scenesURLsTable)
sceneMarkersTagsJoinTable = goqu.T(sceneMarkersTagsTable)
performersAliasesJoinTable = goqu.T(performersAliasesTable)
performersURLsJoinTable = goqu.T(performerURLsTable)
performersTagsJoinTable = goqu.T(performersTagsTable)
@@ -160,6 +162,16 @@ var (
idColumn: goqu.T(sceneMarkerTable).Col(idColumn),
}
sceneMarkersTagsTableMgr = &joinTable{
table: table{
table: sceneMarkersTagsJoinTable,
idColumn: sceneMarkersTagsJoinTable.Col(sceneMarkerIDColumn),
},
fkColumn: sceneMarkersTagsJoinTable.Col(tagIDColumn),
foreignTable: tagTableMgr,
orderBy: tagTableSort,
}
scenesFilesTableMgr = &relatedFilesTable{
table: table{
table: scenesFilesJoinTable,