package database import ( "RenewCMS/internal/domain/language" entity "RenewCMS/internal/infrastructure/persistence/models" "gorm.io/gorm" ) const siteLanguageSuggestionsMarker = "site_language_suggestions" func SeedSiteLanguageSuggestions(db *gorm.DB) error { return db.Transaction(func(tx *gorm.DB) error { applied, err := markerApplied(tx, siteLanguageSuggestionsMarker) if err != nil || applied { return err } var sites []entity.Site if err := tx.Order("id ASC").Find(&sites).Error; err != nil { return err } for _, site := range sites { suggestion := language.Suggest(site.Locale) if !suggestion.Found { continue } row := entity.SiteLanguage{SiteID: site.ID, Lang: suggestion.Tag, IsDefault: true, Enabled: true, Confirmed: false} if err := tx.Create(&row).Error; err != nil { return err } } return applyMarker(tx, siteLanguageSuggestionsMarker) }) }