package handlers import ( "github.com/gin-gonic/gin" "github.com/imc/backend/internal/db" ) type StatsHandler struct { db *db.DB } func NewStatsHandler(database *db.DB) *StatsHandler { return &StatsHandler{db: database} } type Stats struct { TotalDomains int `json:"totalDomains"` TotalUsers int `json:"totalUsers"` TotalAliases int `json:"totalAliases"` QueueSize int `json:"queueSize"` } func (h *StatsHandler) Get(c *gin.Context) { domains, err := h.db.GetAllDomains() if err != nil { domains = []db.DomainStats{} } users, err := h.db.GetAllMailUsers() if err != nil { users = []db.User{} } aliases, err := h.db.GetAllAliases() if err != nil { aliases = []db.AliasWithDomain{} } stats := Stats{ TotalDomains: len(domains), TotalUsers: len(users), TotalAliases: len(aliases), QueueSize: 0, } Success(c, stats) }