package api

import (
	"github.com/gin-gonic/gin"
	"github.com/pingcap/dbaas/billing2/model/payment/paymentsub"
	"github.com/pingcap/dbaas/billing2/utils/ginutils"
)

type TaxAPI struct {
}

// @Summary Update Tenant TaxRate
// @Schemes
// @Accept json
// @Produce json
// @Param tenant_id path string true "tenant_id"
// @Success 200 {object} forms.TaxRate
// @Router /tenants/{tenant_id}/tax_rates [post]
func (s *TaxAPI) FlushTenantTaxRate(c *gin.Context) (ret ginutils.HandlerFuncResult, retErr error) {
	tenantID, err := getTenantIDFromURI(c)
	if err != nil {
		return nil, err
	}
	return (&paymentsub.TaxModel{}).RetrieveAndUpdateTenantTaxRate(tenantID)
}

func InitializeTaxRateRouter(router ginutils.MyRoute) {
	s := &TaxAPI{}
	router.HandleWithError("POST", "/tenants/:tenant_id/tax_rates", s.FlushTenantTaxRate)
}
