package main

import (
	"log"

	"github.com/pingcap/crm-bot/model"
	"github.com/pingcap/crm-bot/pkg/config"
	"github.com/pingcap/crm-bot/pkg/db"
	"github.com/pingcap/crm-bot/pkg/job"
	"github.com/pingcap/crm-bot/pkg/util"
	"github.com/pingcap/crm-bot/tidbcloud"
)

func main() {
	config.InitConfig("config.yml", "yml", "./etc")
	gdb, err := db.InitDb(config.GetString("db"))
	if err != nil {
		log.Fatal(err)
	}
	gdb.AutoMigrate(&model.CloudTenant{}, &model.CloudTenantCluster{}, &model.CloudTenantClusterComponent{})

	err = tidbcloud.LoadTiDBCloudInfo(gdb)
	if err != nil {
		log.Println("[error] LoadTiDBCloudInfo", err)
	}

	job.Start()
	job.AddJob("@daily", job.JobRunner(func() {
		err := tidbcloud.LoadTiDBCloudInfo(gdb)
		if err != nil {
			log.Println("[error] LoadTiDBCloudInfo", err)
		}
	}))

	log.Println("Server Started")
	util.GracefulShutdown(nil, nil)
	log.Println("Server exiting")
}
