2701-как будто ок днд работает

This commit is contained in:
2026-01-27 12:09:54 +03:00
parent de4bd9c8d7
commit 1e2d43be8e
13 changed files with 10257 additions and 175 deletions

View File

@@ -921,3 +921,32 @@ func (s *Service) ReorderItem(draftID, itemID uuid.UUID, newOrder int) error {
// Обновляем порядок целевого элемента
return s.draftRepo.UpdateItemOrder(itemID, newOrder)
}
// ReorderItems обновляет порядок нескольких элементов в черновике
func (s *Service) ReorderItems(draftID uuid.UUID, items []struct {
ID uuid.UUID
Order int
}) error {
// Проверяем, что черновик существует
draft, err := s.draftRepo.GetByID(draftID)
if err != nil {
return fmt.Errorf("черновик не найден: %w", err)
}
// Проверяем, что все элементы принадлежат указанному черновику
for _, item := range items {
found := false
for _, draftItem := range draft.Items {
if draftItem.ID == item.ID {
found = true
break
}
}
if !found {
return fmt.Errorf("элемент с id %s не принадлежит черновику %s", item.ID.String(), draftID.String())
}
}
// Вызываем метод репозитория для обновления порядка
return s.draftRepo.ReorderItems(draftID, items)
}