package mongo import ( "git.sendico.io/tech/sxchnge/bff/pkg/db" "git.sendico.io/tech/sxchnge/bff/pkg/db/transaction" "git.sendico.io/tech/sxchnge/bff/pkg/merrors" "go.mongodb.org/mongo-driver/v2/mongo" ) // Dependencies resolves local DB/transaction primitives for edge-local store wiring only. type Dependencies struct { Database *mongo.Database Transactions transaction.Factory } type DatabaseProvider interface { MongoDatabase() *mongo.Database } func ResolveDependencies(dbf db.Factory) (*Dependencies, error) { if dbf == nil { return nil, merrors.InvalidArgument("database factory is required", "dbFactory") } provider, ok := dbf.(DatabaseProvider) if !ok || provider.MongoDatabase() == nil { return nil, merrors.Internal("mongo database provider is not available for edge-local storage wiring") } return &Dependencies{ Database: provider.MongoDatabase(), Transactions: dbf.TransactionFactory(), }, nil }