using adas_core.Domain.Models;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Services.Interfaces;
public interface IRecordingAlertService : IApiRequestService
{
///
/// Retrieves the most recent patient recording alerts for the specified patient.
///
/// The identifier of the patient whose recording alerts are being queried.
/// The maximum number of most recent recording alerts to return. Defaults to 2.
/// A task representing the asynchronous operation, containing a list of the patient's most recent recording alerts.
Task> FindLastRecordingAlert(ObjectId patientId, int num = 2);
///
/// Deletes records associated with the specified patient identifier.
///
/// The unique identifier of the patient whose related records should be removed.
Task DeleteByPatientId(ObjectId id);
///
/// Asynchronously archives the specified patient, moving their record out of the active set.
///
/// The patient to archive.
Task Archive(Patient patient);
///
/// Archives the records associated with the specified patient identifier.
///
/// The identifying the patient whose related records should be archived.
Task ArchiveByPatientId(ObjectId id);
///
/// Updates multiple records by replacing the with the new
/// in entries identified by .
///
/// The identifier used to select the target records to update.
/// The new ObjectId value to assign to the matching records.
/// The existing ObjectId value to be replaced in the matching records.
Task UpdateManyObjectId(string nameId, ObjectId id, ObjectId oldId);
}