refactor: переработать порядок категорий (MB→CPU→MEM→RAID→drives→GPU→NIC→HBA→PSU→ACC)

SeedCategories теперь обновляет display_order у существующих записей,
поэтому новый порядок применяется при следующем запуске без ручных миграций.
MaxKnownDisplayOrder повышен до 200.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-24 19:03:19 +03:00
parent 5d4e1b44f6
commit 6049334323
3 changed files with 37 additions and 31 deletions

View File

@@ -43,12 +43,18 @@ func Migrate(db *gorm.DB) error {
return nil
}
// SeedCategories inserts default categories if not exist
// SeedCategories upserts default categories, updating display_order on existing rows.
func SeedCategories(db *gorm.DB) error {
for _, cat := range DefaultCategories {
result := db.Where("code = ?", cat.Code).FirstOrCreate(&cat)
if result.Error != nil {
return result.Error
var existing Category
if err := db.Where("code = ?", cat.Code).First(&existing).Error; err != nil {
if err := db.Create(&cat).Error; err != nil {
return err
}
} else {
if err := db.Model(&existing).Update("display_order", cat.DisplayOrder).Error; err != nil {
return err
}
}
}
return nil