This commit is contained in:
Tomas Dvorak
2026-03-13 14:34:19 +01:00
parent 84a8acf944
commit 30d70a6aeb
126 changed files with 27297 additions and 29069 deletions
+2 -95
View File
@@ -69,99 +69,6 @@ func main() {
log.Fatalf("Failed to run database migrations: %v", err)
}
}
// Best-effort: ensure schemas exist and are up-to-date (adds new columns)
if err := dbInstance.AutoMigrate(
&models.Settings{},
&models.User{},
&models.Article{},
&models.ScoreboardState{},
&models.CompetitionAlias{},
&models.Team{},
&models.Player{},
&models.ContactCategory{},
&models.Contact{},
&models.ContactMessage{},
&models.NewsletterSubscription{},
&models.Sponsor{},
&models.Clothing{},
&models.Poll{},
&models.PollOption{},
&models.PollVote{},
&models.NavigationItem{},
&models.SocialLink{},
&models.PageElementConfig{},
&models.ShortLink{},
&models.LinkClick{},
&models.Comment{},
&models.CommentReaction{},
&models.CommentBan{},
&models.UnbanRequest{},
&models.CommentReport{},
&models.UserProfile{},
&models.PointsTransaction{},
&models.Achievement{},
&models.UserAchievement{},
&models.RewardItem{},
&models.RewardRedemption{},
&models.MatchOverride{},
&models.TeamLogoOverride{},
&models.Sweepstake{},
&models.SweepstakePrize{},
&models.SweepstakeEntry{},
&models.SweepstakeWinner{},
&models.UploadedFile{},
&models.FileUsage{},
&models.ErrorEvent{},
&models.ManualCompetition{},
&models.ManualMatch{},
&models.ManualTableRow{},
&models.Language{},
&models.Translation{},
&models.ContentTranslation{},
&models.UserLanguagePreference{},
// E-shop models (best-effort auto-migrate)
&models.EshopProductCategory{},
&models.EshopProduct{},
&models.EshopProductVariant{},
&models.EshopCart{},
&models.EshopCartItem{},
&models.EshopOrder{},
&models.EshopOrderItem{},
&models.EshopPayment{},
&models.EshopShippingLabel{},
&models.EshopSettings{},
// Facility management models
&models.Facility{},
&models.FacilityAvailabilityRule{},
&models.FacilityBooking{},
&models.FacilityEquipment{},
&models.FacilityMaintenance{},
&models.WeatherCondition{},
&models.FacilityBookingTemplate{},
&models.Event{},
&models.EventAttachment{},
&models.QRCode{},
// Financial models
&models.Budget{},
&models.Sponsorship{},
&models.SponsorshipPayment{},
&models.SponsorshipDocument{},
&models.Expense{},
&models.ExpenseDocument{},
&models.FinancialReport{},
&models.FinancialSettings{},
// Invoice models
&models.Invoice{},
&models.InvoiceItem{},
&models.InvoicePayment{},
&models.InvoiceCustomer{},
&models.InvoiceSettings{},
&models.InvoiceSequence{},
&models.InvoiceTemplate{},
); err != nil {
log.Printf("Warning: AutoMigrate failed: %v", err)
}
var settings models.Settings
_ = dbInstance.First(&settings).Error // ignore not found
if config.AppConfig != nil {
@@ -223,8 +130,8 @@ func main() {
// Set max multipart memory to match upload size limit (default is 32MB)
r.MaxMultipartMemory = config.AppConfig.MaxUploadSize
// Enable gzip compression for responses
r.Use(gzip.Gzip(gzip.DefaultCompression))
// Favor faster compression to reduce server CPU under load.
r.Use(gzip.Gzip(gzip.BestSpeed))
// Apply strict security headers
r.Use(middleware.SecurityHeaders())