package client

import (
	"github.com/tidbcloud/ffs/config"
	"github.com/tidbcloud/ffs/pkg/v1/proto"
	"github.com/tidbcloud/ffs/util/grpcutil"
	"google.golang.org/grpc"
)

type Client struct {
	*grpcutil.ServiceClient
}

func NewClient(endpoints ...string) *Client {
	return &Client{
		ServiceClient: &grpcutil.ServiceClient{
			Schema:    config.Throttler,
			Endpoints: endpoints,
			NewClient: func(conn *grpc.ClientConn) interface{} {
				return proto.NewThrottlingServiceClient(conn)
			}},
	}
}

func (c *Client) Client() proto.ThrottlingServiceClient {
	return c.ServiceClient.Client().(proto.ThrottlingServiceClient)
}
