package repository import ( "context" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "mailnotifier/internal/models" ) type Repository struct { mdb *mongo.Collection } func NewRepository(mdb *mongo.Collection) *Repository { return &Repository{ mdb: mdb, } } // записываем каждый месседж по одному func (r *Repository) Insert(ctx context.Context, mes models.Message) error { mes.ID = primitive.NewObjectID() mes.Send = false _, err := r.mdb.InsertOne(ctx, mes) if err != nil { return err } return nil } // получаем сразу все в tools метод распределения func (r *Repository) GetMany(ctx context.Context) ([]models.Message, error) { cursor, err := r.mdb.Find(ctx, bson.D{}) if err != nil { return nil, err } defer cursor.Close(ctx) var messages []models.Message if err := cursor.All(ctx, &messages); err != nil { return nil, err } return messages, nil }