package builder import ( "github.com/tech/sendico/pkg/mservice" "go.mongodb.org/mongo-driver/mongo" ) type Pipeline interface { Match(filter Query) Pipeline Lookup(from mservice.Type, localField, foreignField, as Field) Pipeline LookupWithPipeline( from mservice.Type, pipeline Pipeline, // your nested pipeline as Field, let *map[string]Field, // optional e.g. {"projRef": Field("$_id")} ) Pipeline // unwind with functional options Unwind(path Field, opts ...UnwindOption) Pipeline Count(field Field) Pipeline Group(groupBy Alias, accumulators ...GroupAccumulator) Pipeline Project(projections ...Projection) Pipeline ReplaceRoot(newRoot Expression) Pipeline Build() mongo.Pipeline }