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 ILightBeaconRepository : IMongoRepository<LightBeacon>
{
    List<LightBeacon> GetLightBeaconInList(List<ObjectId> configurationRelayList);
    Task<LightBeacon?> GetById(ObjectId relayId);
    Task<LightBeacon?> GetByName(string name);
    Task<LightBeacon?> InsertOneAsyncAndReturn(LightBeacon beacon);
    IFindFluent<LightBeacon, LightBeacon> GetPaginatedRelays(PaginationFilter filter);
    Task<List<LightBeacon>> GetSearchByName(string textToSearch);
}