using adas_core.Domain.Models.Filter;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
using MongoDB.Driver;

namespace adas_core.Application.Repositories.Interfaces;

public interface ICameraRepository : IMongoRepository<Camera>
{
    Task<Camera?> GetById(ObjectId cameraId);
    Task<Camera?> GetByName(string name);
    List<Camera> GetCameraInList(List<ObjectId> configurationRelayList);
    IFindFluent<Camera, Camera> GetPaginatedCameras(PaginationFilter request);
    Task<Camera?> InsertOneCamera(Camera camera);
    Task<Camera?> UpdateCameraAsync(ObjectId objectId, Camera camera);
    Task<List<Camera>> GetSearchByNameCameras(string textToSearch);
}