package handlers

import (
	"github.com/gin-gonic/gin"

	"switchboard-core/metrics"
)

// MetricsHandler serves the admin metrics endpoint.
type MetricsHandler struct {
	collector *metrics.Collector
}

// NewMetricsHandler creates a MetricsHandler.
func NewMetricsHandler(c *metrics.Collector) *MetricsHandler {
	return &MetricsHandler{collector: c}
}

// GetMetrics returns a full metrics snapshot.
// GET /api/v1/admin/metrics
func (h *MetricsHandler) GetMetrics(c *gin.Context) {
	snap := h.collector.Collect(c.Request.Context())
	c.JSON(200, snap)
}
