feat: storage, language rules and migration
This commit is contained in:
1 parent
8c4a1825ab
commit
0806733d5c
70 files changed
+1771
-132
No files matched your search
@@ -0,0 +1,34 @@
|
||||
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)
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user