package config

import (
	"fmt"
	"os"

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

// Redis配置结构
type RedisConfig struct {
	Host     string
	Port     string
	Password string
}

// 获取Redis配置
func GetRedisConfig() *RedisConfig {
	config := &RedisConfig{
		Host:     os.Getenv("REDIS_HOST"),
		Port:     os.Getenv("REDIS_PORT"),
		Password: os.Getenv("REDIS_PASSWORD"),
	}

	// 设置默认值
	if config.Host == "" {
		config.Host = "localhost"
	}
	if config.Port == "" {
		config.Port = "6379"
	}
	if config.Password == "" {
		config.Password = ""
	}

	return config
}

// 创建Redis客户端
func NewRedisClient(db int) (*redis.Client, error) {
	config := GetRedisConfig()
	client := redis.NewClient(&redis.Options{
		Addr:     fmt.Sprintf("%s:%s", config.Host, config.Port),
		Password: config.Password,
		DB:       db,
	})

	return client, nil
}