package handler import ( "net/http" "strconv" "github.com/gin-gonic/gin" "dating-app/internal/monitoring" "dating-app/internal/utils" ) type MonitoringHandler struct { store *monitoring.Store } func NewMonitoringHandler(store *monitoring.Store) *MonitoringHandler { return &MonitoringHandler{store: store} } // Summary GET /admin/monitoring/summary func (h *MonitoringHandler) Summary(c *gin.Context) { utils.Success(c, http.StatusOK, "", h.store.Summary()) } // RecentRequests GET /admin/monitoring/requests?limit=100&user_id=42 // اگه user_id داده بشه، فقط فعالیت اخیر همون کاربر برمی‌گرده (برای صفحه‌ی // جزئیات کاربر توی پنل ادمین)؛ وگرنه آخرین درخواست‌های کل سرور. func (h *MonitoringHandler) RecentRequests(c *gin.Context) { limit := 100 if raw := c.Query("limit"); raw != "" { if n, err := strconv.Atoi(raw); err == nil && n > 0 && n <= 1000 { limit = n } } if raw := c.Query("user_id"); raw != "" { if uid, err := strconv.ParseUint(raw, 10, 64); err == nil { utils.Success(c, http.StatusOK, "", h.store.RecentByUser(uint(uid), limit)) return } } utils.Success(c, http.StatusOK, "", h.store.Recent(limit)) }