//go:generate ${GOBIN}/mockgen -destination client_mock.go -package=configcentercli github.com/tidbcloud/config-center/proto/config_center ConfigCenterServiceClient
package configcentercli

import (
	"fmt"

	ccproto "github.com/tidbcloud/config-center/proto/config_center"
	"github.com/tidbcloud/devops/pkg/infra/utils/grpcutil"
	"google.golang.org/grpc"
)

type Client struct {
	ConfigAPI ccproto.ConfigCenterServiceClient
}

func NewClient(addr string) (*Client, error) {
	c := &Client{}

	opts := grpcutil.PresetDailOption().Default()
	conn, err := grpc.NewClient(addr, opts...)
	if err != nil {
		return nil, fmt.Errorf("dial config center %s failed: %w", addr, err)
	}

	c.ConfigAPI = ccproto.NewConfigCenterServiceClient(conn)

	return c, nil
}
