package repositories

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

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

const devicesCollection = "devices"

func GetDeviceByImei(ctx context.Context, imei int64) (*models.DeviceEntity, error) {

	filter := bson.M{
		"device_imei": imei,
	}

	var device models.DeviceEntity

	err := db.Database().Collection(devicesCollection).FindOne(ctx, filter).Decode(&device)

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

	return &device, nil
}
