// internal/handlers/statistics/thunderball.go package handlers import ( "log" "net" "net/http" templateHandlers "synlotto-website/internal/handlers/template" templateHelpers "synlotto-website/internal/helpers/template" "synlotto-website/internal/http/middleware" "synlotto-website/internal/platform/bootstrap" ) func StatisticsThunderball(app *bootstrap.App) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { ip, _, _ := net.SplitHostPort(r.RemoteAddr) limiter := middleware.GetVisitorLimiter(ip) if !limiter.Allow() { http.Error(w, "Rate limit exceeded", http.StatusTooManyRequests) return } data := templateHandlers.BuildTemplateData(app, w, r) context := templateHelpers.TemplateContext(w, r, data) tmpl := templateHelpers.LoadTemplateFiles("statistics.html", "web/templates/statistics/thunderball.html") if err := tmpl.ExecuteTemplate(w, "layout", context); err != nil { log.Println("❌ Template render error:", err) http.Error(w, "Error rendering Thunderball statistics page", http.StatusInternalServerError) return } } }