package redis

import (
	"context"
	"time"
)

// Service defines the interface for Redis operations
type Service interface {
	// Lock acquires a distributed lock
	Lock(ctx context.Context, key string, ttl time.Duration) (func(context.Context), error)

	// Set sets a key with value and TTL
	Set(key string, value []byte, ttl time.Duration) error

	// Get retrieves a value by key
	Get(key string) ([]byte, error)

	// Close closes the Redis connection
	Close() error
}
