package workers

import (
	"github.com/pingcap/dbaas/billing2/config"
	"github.com/pingcap/dbaas/billing2/handler/centralhandler"
	"github.com/pingcap/dbaas/billing2/model/payment"
	"github.com/pingcap/log"
	"github.com/spf13/viper"
	"go.uber.org/zap"
)

func CalculateCache() {
	if !viper.GetBool(config.EnableCache) {
		return
	}
	costModel := &payment.CostExplorerModel{}
	now := getNowDate()
	tenants, err := centralhandler.GetCentralHandler().GetAllTenants()
	if err != nil {
		log.Error("failed to get tenants in worker.", zap.Error(err))
	}
	for _, tenant := range tenants {
		// reduce cost of calculate cache
		if tenant.Plan == "poc" || tenant.Plan == "on_demand" {
			_, _ = costModel.GetMonthlyCost(tenant.TenantID, now.Year(), int(now.Month()))
		}
	}
}
