Files
RenewCMS/internal/infrastructure/persistence/database/siteLanguageSeed.go
T

35 lines
914 B
Go

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)
})
}