package main

import (
	"flag"

	"github.com/pingcap-inc/clinic/tools/cleanup_user/config"
	"github.com/pingcap-inc/clinic/tools/cleanup_user/feishuapi"
	"github.com/pingcap-inc/clinic/tools/cleanup_user/operator"

	"github.com/pingcap/log"
	_ "go.uber.org/automaxprocs"
	"go.uber.org/zap"

	"github.com/pingcap-inc/clinic/pkg/db"
)

var cfgPath string

func main() {
	flag.StringVar(&cfgPath, "c", "./config.yaml", "-c=/path/config.yaml")
	flag.Parse()

	cfg, err := config.InitConfig(cfgPath)
	if err != nil {
		panic(err)
	}

	// oauth.NewOAuthService(cfg.OAuthConfigs)
	// oauth.InitOauth(ocfg.ClientID, ocfg.ClientSecret, ocfg.Redirect)
	// we set read only to ture to disable any migration
	err = db.Initialize(cfg.ClinicDBConfig, true)
	if err != nil {
		log.Error("init db failed", zap.Error(err))
		panic(err)
	}

	feishuAPICli, err := feishuapi.New(cfg.FeishuAPIConfig.AppID, cfg.FeishuAPIConfig.AppSecret)
	if err != nil {
		panic(err)
	}
	op := operator.NewOperator(feishuAPICli)
	if err := op.Run(); err != nil {
		log.Fatal("run operation failed", zap.Error(err))
	}
	log.Info("cleanup not existed user in PingCAP group successful")
}
