package utils import ( "encoding/json" "fmt" "github.com/tuusuario/go-sync-service/internal/config" "github.com/tuusuario/go-sync-service/internal/domain/ports" ) // Función genérica para deserializar un JSON de Redis a cualquier tipo func CargarDesdeRedis[T any](cfg ports.RedisConfigProvider, clave string) (*T, error) { data, err := cfg.GetString(clave) if err != nil { config.Log.Errorf("⚠️ error al obtener config de Redis [%s]: %s", clave, err) return nil, fmt.Errorf("error al obtener clave [%s] de redis: %w", clave, err) } config.Log.Debugf("🔑 Clave [%s] obtenida de Redis: %s", clave, data) var result T if err := json.Unmarshal([]byte(data), &result); err != nil { config.Log.Errorf("❌ error al parsear JSON [%s]: %s", clave, err) return nil, fmt.Errorf("error al parsear JSON [%s]: %w", clave, err) } return &result, nil }