package storage import ( "context" "git.tornberg.me/go-otel/internal/websocket" ) // SearchOptions narrows a Search call beyond the free-text query. type SearchOptions struct { // Query is a case-insensitive substring match against the raw entry JSON. Query string // Type restricts results to a single telemetry type (traces, metrics, logs). // Empty matches any type. Type string // Since restricts results to entries with Timestamp >= Since (unix nanoseconds). // Zero means no lower bound. Since int64 // Until restricts results to entries with Timestamp <= Until (unix nanoseconds). // Zero means no upper bound. Until int64 } // Store interface for telemetry history persistence. type Store interface { Append(ctx context.Context, entry websocket.HistoryEntry) error GetHistory(ctx context.Context, limit int) ([]websocket.HistoryEntry, error) Search(ctx context.Context, opts SearchOptions, limit int) ([]websocket.HistoryEntry, error) }