service backend
This commit is contained in:
29
api/pkg/db/tseries/tseries.go
Normal file
29
api/pkg/db/tseries/tseries.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package tseries
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/tech/sendico/pkg/db/repository/builder"
|
||||
rdecoder "github.com/tech/sendico/pkg/db/repository/decoder"
|
||||
tspoint "github.com/tech/sendico/pkg/db/tseries/point"
|
||||
)
|
||||
|
||||
// TimeSeries[T] abstracts a Mongo time-series “bucket” of documents of type T.
|
||||
type TimeSeries interface {
|
||||
// Aggregate runs an aggregation pipeline on the time-series
|
||||
Aggregate(ctx context.Context, builder builder.Pipeline, decoder rdecoder.DecodingFunc) error
|
||||
// Insert adds a single point into the series.
|
||||
Insert(ctx context.Context, point tspoint.TimePoint) error
|
||||
// InsertMany adds multiple points in one bulk operation.
|
||||
InsertMany(ctx context.Context, points []tspoint.TimePoint) error
|
||||
|
||||
// Query fetches all points whose timeField lies in [from, to).
|
||||
// The 'filter' param is an optional Mongo-style query on meta or other fields.
|
||||
Query(
|
||||
ctx context.Context,
|
||||
decoder rdecoder.DecodingFunc,
|
||||
filter builder.Query,
|
||||
from, to *time.Time,
|
||||
) error
|
||||
}
|
||||
Reference in New Issue
Block a user