mirror of
https://github.com/stashapp/stash.git
synced 2025-12-16 20:07:05 +03:00
Add bulk update markers interface (#6210)
This commit is contained in:
@@ -30,6 +30,7 @@ type SceneMarkerPartial struct {
|
||||
Seconds OptionalFloat64
|
||||
EndSeconds OptionalFloat64
|
||||
PrimaryTagID OptionalInt
|
||||
TagIDs *UpdateIDs
|
||||
SceneID OptionalInt
|
||||
CreatedAt OptionalTime
|
||||
UpdatedAt OptionalTime
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user