package persistence import ( domainUser "RenewCMS/internal/domain/user" entity "RenewCMS/internal/infrastructure/persistence/models" "gorm.io/gorm" ) func BackfillUserRoles(db *gorm.DB) error { return db.Transaction(func(tx *gorm.DB) error { var firstUser entity.User result := tx.Where("role = ''").Order("id asc").Limit(1).Find(&firstUser) if result.Error != nil { return result.Error } if result.RowsAffected == 0 { return nil } var lowest entity.User if err := tx.Order("id asc").First(&lowest).Error; err != nil { return err } if lowest.Role == "" { if err := tx.Model(&entity.User{}).Where("id = ?", lowest.ID).Update("role", string(domainUser.RoleOwner)).Error; err != nil { return err } } return tx.Model(&entity.User{}).Where("role = ''").Update("role", string(domainUser.RoleAdmin)).Error }) }