package tiredis

import (
	"github.com/go-redis/redis/extra/redisotel/v8"
	"github.com/go-redis/redis/v8"
)

func NewClient(options *redis.Options) *redis.Client {
	rdb := redis.NewClient(options)

	rdb.AddHook(redisotel.NewTracingHook())

	return rdb
}

func NewClusterClient(options *redis.ClusterOptions) *redis.ClusterClient {
	rdb := redis.NewClusterClient(&redis.ClusterOptions{
		NewClient: func(opt *redis.Options) *redis.Client {
			node := redis.NewClient(opt)
			node.AddHook(redisotel.NewTracingHook())
			return node
		},
	})

	rdb.AddHook(redisotel.NewTracingHook())

	return rdb
}
