package backup

import (
	tidbmgmtservicev1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_mgmt_service/v1"
	"github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/adapter/nextgenglobal"
	"github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/adapter/serverlessglobal"
)

func NewServer(
	nextgenCli nextgenglobal.NextGenGlobal,
	serverlessCli serverlessglobal.ServerlessGlobal,
) tidbmgmtservicev1.BackupServiceServer {
	return newServerImpl(nextgenCli, serverlessCli)
}

func NewPGBackupProxyServer(
	nextgenCli nextgenglobal.NextGenGlobal,
	serverlessCli serverlessglobal.ServerlessGlobal,
) tidbmgmtservicev1.ServerlessPGBackupProxyServiceServer {
	return newServerImpl(nextgenCli, serverlessCli)
}

func newServerImpl(nextgenCli nextgenglobal.NextGenGlobal, serverlessCli serverlessglobal.ServerlessGlobal) *serverImpl {
	return &serverImpl{nextgenCli: nextgenCli, serverlessCli: serverlessCli}
}

type serverImpl struct {
	nextgenCli    nextgenglobal.NextGenGlobal
	serverlessCli serverlessglobal.ServerlessGlobal
}
