package globalapi

import (
	"strings"

	"github.com/gin-gonic/gin"
	"github.com/tidbcloud/observability/pkg/common/constants"
	"github.com/tidbcloud/observability/pkg/common/errors"
	"github.com/tidbcloud/observability/pkg/regionalapi/apiinterceptor"
)

// GetByocObservabilityVcpu
// @Summary get BYOC observability vCPU range metrics
// @Description proxy an org-scoped observability vCPU range query to regional self-monitoring prometheus
// @Tags external
// @Accept json
// @Produce json
// @Param x-region-id header string true "Region id for routing"
// @Param bizType path string true "bizType, e.g. byoc"
// @Param tenantID path string true "tenant id"
// @Param start query string true "range start, unix seconds"
// @Param end query string true "range end, unix seconds"
// @Param step query string false "optional resolution step, default 30s"
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} message.Result
// @Failure 500 {object} message.Result
// @Router /external/{bizType}/orgs/{tenantID}/byocVcpuPools/observabilityVcpu [get]
func GetByocObservabilityVcpu(c *gin.Context) {
	if !strings.EqualFold(c.Param("bizType"), constants.DefaultByocBizType) {
		apiinterceptor.Fail(c, errors.New(errors.UnsupportedBizType, "only byoc bizType is supported"))
		return
	}
	AutoRouteRegionalServer(c, defaultOptionalParam)
}
