package client

import (
	"fmt"

	"github.com/tidbcloud/ecosystem-service/config"
	globalserverlessv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/serverless/v1"
	mgmtapi "github.com/tidbcloud/tidb-management-service/api/spec/tidb_mgmt_service/v1"
	tigrpc "github.com/tidbcloud/tiinf/transport/tigrpc/client"
)

func GetMgmtSvcClient(conf *config.ConfigWrapper) mgmtapi.ClusterServiceClient {
	conn, err := tigrpc.NewClientConn(conf.ServiceConfig.GrpcConfig.MgmtSvcAddr, tigrpc.WithDefault())
	if err != nil {
		panic(fmt.Sprintf("dial mgmt-svc: %s", err))
	}

	return mgmtapi.NewClusterServiceClient(conn)
}

func GetServerlessGlobalClient(conf *config.ConfigWrapper) globalserverlessv1.SqlUserServiceClient {
	conn, err := tigrpc.NewClientConn(conf.ServiceConfig.GrpcConfig.ServerlessGlobalSvcAddr, tigrpc.WithDefault())
	if err != nil {
		panic(fmt.Sprintf("dial mgmt-svc: %s", err))
	}

	return globalserverlessv1.NewSqlUserServiceClient(conn)
}
