package handler import ( "net/http" "bugulma/backend/internal/service" "github.com/gin-gonic/gin" ) type SettingsAdminHandler struct { settingsSvc *service.SettingsService } func NewSettingsAdminHandler(settingsSvc *service.SettingsService) *SettingsAdminHandler { return &SettingsAdminHandler{settingsSvc: settingsSvc} } // GetMaintenance returns current maintenance setting // @Summary Get maintenance settings // @Tags admin // @Produce json // @Success 200 {object} service.MaintenanceSetting // @Router /api/v1/admin/settings/maintenance [get] func (h *SettingsAdminHandler) GetMaintenance(c *gin.Context) { m, err := h.settingsSvc.GetMaintenance(c.Request.Context()) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, m) } // SetMaintenance updates maintenance settings // @Summary Update maintenance settings // @Tags admin // @Accept json // @Produce json // @Param request body service.MaintenanceSetting true "Maintenance settings" // @Success 200 {object} map[string]string // @Router /api/v1/admin/settings/maintenance [put] func (h *SettingsAdminHandler) SetMaintenance(c *gin.Context) { var req service.MaintenanceSetting if err := c.ShouldBindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } if err := h.settingsSvc.SetMaintenance(c.Request.Context(), &req); err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, gin.H{"message": "ok"}) }