package auth import ( "context" "git.sendico.io/tech/sxchnge/bff/pkg/db/repository" "git.sendico.io/tech/sxchnge/bff/pkg/db/repository/builder" "git.sendico.io/tech/sxchnge/bff/pkg/db/storable" "git.sendico.io/tech/sxchnge/bff/pkg/mlogger" "git.sendico.io/tech/sxchnge/bff/pkg/model" "go.mongodb.org/mongo-driver/v2/bson" ) // IndexableDB implements reordering with permission checking type IndexableDB[T storable.Storable] interface { // Reorder implements reordering with permission checking using EnforceBatch Reorder(ctx context.Context, accountRef, objectRef bson.ObjectID, newIndex int, filter builder.Query) error } // NewIndexableDB creates a new auth.IndexableDB instance func NewIndexableDB[T storable.Storable]( repo repository.Repository, logger mlogger.Logger, enforcer Enforcer, createEmpty func() T, getIndexable func(T) *model.Indexable, ) IndexableDB[T] { return newIndexableDBImp(repo, logger, enforcer, createEmpty, getIndexable) }