package mo

import (
	"go.mongodb.org/mongo-driver/v2/bson"
	"go.mongodb.org/mongo-driver/v2/mongo"
	"go.mongodb.org/mongo-driver/v2/mongo/options"
)

type (
	ObjectID   = bson.ObjectID
	Regex      = bson.Regex
	JavaScript = bson.JavaScript
	Symbol     = bson.Symbol
	Binary     = bson.Binary
	Decimal128 = bson.Decimal128
	Null       = bson.Null
	DBPointer  = bson.DBPointer
	DateTime   = bson.DateTime
	Undefined  = bson.Undefined
	Timestamp  = bson.Timestamp
	D          = bson.D
	E          = bson.E
	M          = bson.M
	A          = bson.A
	MinKey     = bson.MinKey
	MaxKey     = bson.MaxKey

	Cursor = mongo.Cursor

	// SingleResult 内的 Err() != nil, 若查询成功但没有符合条件的结果时会返回 ErrNoDocuments, 查询失败时会返回具体错误
	SingleResult = mongo.SingleResult

	Pipeline         = mongo.Pipeline
	Client           = mongo.Client
	Database         = mongo.Database
	Collection       = mongo.Collection
	IndexModel       = mongo.IndexModel
	IndexView        = mongo.IndexView
	InsertOneResult  = mongo.InsertOneResult
	InsertManyResult = mongo.InsertManyResult
	DeleteResult     = mongo.DeleteResult
	UpdateResult     = mongo.UpdateResult

	FindOneOptionsBuilder          = options.FindOneOptionsBuilder
	FindOptionsBuilder             = options.FindOptionsBuilder
	UpdateOneOptionsBuilder        = options.UpdateOneOptionsBuilder
	UpdateManyOptionsBuilder       = options.UpdateManyOptionsBuilder
	DeleteOneOptionsBuilder        = options.DeleteOneOptionsBuilder
	DeleteManyOptionsBuilder       = options.DeleteManyOptionsBuilder
	FindOneAndUpdateOptionsBuilder = options.FindOneAndUpdateOptionsBuilder
	FindOneAndDeleteOptionsBuilder = options.FindOneAndDeleteOptionsBuilder
	AggregateOptionsBuilder        = options.AggregateOptionsBuilder
	CountOptionsBuilder            = options.CountOptionsBuilder
)
