From ce3e56f1927273b6115dc6a09b248352919572ab Mon Sep 17 00:00:00 2001 From: kolaente Date: Fri, 3 Apr 2026 19:18:37 +0200 Subject: [PATCH] refactor: use nested map for position conflict tracking Replace struct key map[viewPos]bool with nested map[int64]map[float64]bool for cleaner lookups. --- pkg/models/task_position.go | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/pkg/models/task_position.go b/pkg/models/task_position.go index 86f53373f..42fa02be5 100644 --- a/pkg/models/task_position.go +++ b/pkg/models/task_position.go @@ -603,18 +603,16 @@ func resolveTaskPositionConflicts(s *xorm.Session, projectViewID int64, conflict func resolvePositionConflictsAfterInsert(s *xorm.Session, positions []*TaskPosition) error { // Track which (viewID, position) pairs we've already checked to avoid // resolving the same conflict group twice. - type viewPos struct { - viewID int64 - position float64 - } - checked := make(map[viewPos]bool) + checked := make(map[int64]map[float64]bool) for _, pos := range positions { - key := viewPos{viewID: pos.ProjectViewID, position: pos.Position} - if checked[key] { + if checked[pos.ProjectViewID] != nil && checked[pos.ProjectViewID][pos.Position] { continue } - checked[key] = true + if checked[pos.ProjectViewID] == nil { + checked[pos.ProjectViewID] = make(map[float64]bool) + } + checked[pos.ProjectViewID][pos.Position] = true conflicts, err := findPositionConflicts(s, pos.ProjectViewID, pos.Position) if err != nil {