package dashboard

import (
	"system-altrak/pkg/utils"

	"github.com/gofiber/fiber/v2"
)

type Handler struct {
	service DashboardService
}

func NewHandler(s DashboardService) *Handler {
	return &Handler{service: s}
}

func (h *Handler) GetStats(c *fiber.Ctx) error {
	branchID, _ := c.Locals("current_branch_id").(uint)
	role, _ := c.Locals("role").(string)
	stats, err := h.service.GetDashboardStats(branchID, role)
	if err != nil {
		return utils.InternalErrorResponse(c, "Gagal memuat statistik dashboard")
	}
	return utils.SuccessResponse(c, "Success", stats)
}

func (h *Handler) GetAlerts(c *fiber.Ctx) error {
	branchID, _ := c.Locals("current_branch_id").(uint)
	role, _ := c.Locals("role").(string)
	alerts, err := h.service.GetAlerts(branchID, role)
	if err != nil {
		return utils.InternalErrorResponse(c, "Gagal memuat alert")
	}
	return utils.SuccessResponse(c, "Success", map[string]interface{}{
		"count": len(alerts),
		"items": alerts,
	})
}
