package redisaccessor

import (
	"crypto/tls"
	"fmt"
	"legalgo-BE-go/config"

	"github.com/redis/go-redis/v9"
)

var redisClient *redis.Client

func Get() *redis.Client {
	return redisClient
}

func New(cfg *config.Config) *redis.Client {
	addr := fmt.Sprintf("%s:%s", cfg.Redis.Host, cfg.Redis.Port)

	options := &redis.Options{
		Addr:     addr,
		Password: cfg.Redis.Password,
		DB:       cfg.Redis.DB,
	}

	if cfg.Redis.Username != "" {
		options.Username = cfg.Redis.Username
	}
	if cfg.Redis.SSL {
		options.TLSConfig = &tls.Config{}
	}

	redisClient = redis.NewClient(options)
	return redisClient
}
