package main

import (
	"context"
	"flag"

	log "github.com/sirupsen/logrus"
	"github.com/tidbcloud/metering/pkg/common/config"
	"github.com/tidbcloud/metering/pkg/httpapi"
	"github.com/tidbcloud/metering/pkg/schedule"
)

var serviceconfigpath string

func main() {
	flag.StringVar(&serviceconfigpath, "serviceconfig", "./configs/serviceconfig.yaml", "service info.")
	flag.Parse()

	serviceConfig, err := config.LoadServiceConfig(serviceconfigpath)
	if err != nil {
		log.Panicf("load service config failed. %s", err.Error())
	}
	config.Init(serviceConfig)
	//set up tasks
	schedule.ClusterMetaTask().AsyncTicker()
	schedule.InstanceBillingTask().AsyncTicker()
	schedule.InstanceReportTask().AsyncTicker()
	schedule.NewCleanTask(&serviceConfig).AsyncTicker()
	//setup  http server
	httpapi.StartService(context.Background(), serviceConfig)
}
