package regionalapi

import (
	"net/http"

	"github.com/gin-gonic/gin"
	"github.com/tidbcloud/observability/pkg/common/message"
	"github.com/tidbcloud/observability/pkg/regionalapi/apiinterceptor"
	"github.com/tidbcloud/observability/pkg/regionalservice"
)

// PauseReconcile
// @Summary Pause reconciliation
// @Description Pause reconciliation of cluster
// @Tags cluster
// @Accept json
// @Produce json
// @Param id path string true "cluster id"
// @Param request body message.PauseReconcileReq true "pause reconciliation request"
// @Success 200 {object} message.Result
// @Failure 404 {object} message.Result
// @Failure 405 {object} message.Result
// @Failure 500 {object} message.Result
// @Router /clusters/{id}/pause-reconcile [put]
func PauseReconcile(c *gin.Context) {
	req := &message.PauseReconcileReq{
		ID: c.Param("id"),
	}

	if ok := apiinterceptor.HandleJsonRequestFromQuery(c, req); ok {
		err := regionalservice.GetHandler().PauseReconcile(c, *req)
		if err != nil {
			apiinterceptor.Fail(c, err)
		} else {
			apiinterceptor.Succeed(c, http.StatusOK, nil)
		}
	}
}
