package privilege import ( "context" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "go.uber.org/zap" "hub_admin_backend_service/internal/models" ) type Deps struct { Mdb *mongo.Collection Logger *zap.Logger } type Privilege struct { mdb *mongo.Collection logger *zap.Logger } func NewPrivilegeRepo(deps Deps) *Privilege { return &Privilege{ mdb: deps.Mdb, logger: deps.Logger, } } func (p *Privilege) GetAllPrivileges(ctx context.Context) ([]models.Privilege, error) { filter := bson.M{"isDeleted": false} opts := options.Find() cursor, err := p.mdb.Find(ctx, filter, opts) if err != nil { p.logger.Error("failed to find privileges", zap.Error(err)) return nil, err } defer cursor.Close(ctx) var privileges []models.Privilege if err = cursor.All(ctx, &privileges); err != nil { p.logger.Error("failed to decode privileges", zap.Error(err)) return nil, err } return privileges, nil }