package repositories

import (
	"context"
	"errors"
	"primesys_email/src/db"
	"primesys_email/src/models"

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

const emailMasterCollection = "email_master"

func GetByEmail(ctx context.Context, email string) (*models.EmailMasterModel, error) {

	filter := bson.M{
		"email":         email,
		"active_status": true,
	}

	var result models.EmailMasterModel

	err := db.Database().Collection(emailMasterCollection).FindOne(ctx, filter).Decode(&result)

	if err != nil {
		if errors.Is(err, mongo.ErrNoDocuments) {
			return nil, nil
		}
		return nil, err
	}

	return &result, nil
}
