package cloudprovider

import (
	"context"

	globalcommonv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/common/v1"
	globalserverlessv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/serverless/v1"
	"github.com/tidbcloud/tidb-management-service/serverless-global-service/domain/service/region"
)

type service struct {
	regionSvc region.Service
}

func NewService(regionSvc region.Service) globalserverlessv1.CloudProviderServiceServer {
	return &service{
		regionSvc: regionSvc,
	}
}

func (p *service) Register(
	ctx context.Context,
	req *globalserverlessv1.CloudProviderServiceRegisterRequest,
) (*globalcommonv1.CloudProvider, error) {
	return p.regionSvc.RegisterCloudProvider(ctx, req)
}

func (p *service) List(
	ctx context.Context,
	req *globalserverlessv1.CloudProviderServiceListRequest,
) (*globalserverlessv1.CloudProviderServiceListResponse, error) {
	return p.regionSvc.ListCloudProviders(ctx, req)
}
