package region

import (
	"context"

	openapicommonv1beta1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/common/v1beta1"
	"github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/adapter/account"
	"github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/adapter/serverlessglobal"
)

type Service interface {
	ListAllRegions(ctx context.Context) ([]*openapicommonv1beta1.Region, error)
}

type service struct {
	serverlessCli serverlessglobal.ServerlessGlobal
	accountCli    account.Client
}

func NewService(
	serverlessCli serverlessglobal.ServerlessGlobal,
	accountCli account.Client,
) Service {
	svc := &service{
		serverlessCli: serverlessCli,
		accountCli:    accountCli,
	}
	return svc
}
