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

namespace adas_core.Application.Repositories.Interfaces;

public interface IRecordingAlertRepository : IMongoRepository<PatientRecordingAlert>
{
    Task<List<PatientRecordingAlert>> AggregatedPatientLastObservations(ObjectId patientId, int num);

    Task<List<PatientRecordingAlert>> FindLastObservations(ObjectId patientId, string name, int num = 2);
    new Task InsertOneAsync(PatientRecordingAlert patientRecordingAlert);
    Task DeleteOlderDaysAsync(string name, int value);
    Task DeleteOlderNumberAsync(string name, int value);
    Task DeleteByPatientId(ObjectId patientId);
    Task UpdateManyObjectId(string nameId, ObjectId id, ObjectId oldId);
    Task<IAsyncCursor<PatientRecordingAlert>> FindByPatientIdAsync(ObjectId patientId);
}