using adas_core.Domain.Enums;
using adas_core.Domain.Models;
using adas_core.Domain.Models.DTO;
using adas_core.Domain.Models.MongoModels;
using adas_core.Domain.Models.Recording;
using Patient = adas_core.Domain.Models.MongoModels.Patient;

namespace adas_core.Application.Services.Interfaces;

public interface IRecordingService : IApiRequestService
{
    Task<bool> SendCancelRecordingToRecordingApi(Patient patient, PointOfCare poc);

    Task SendRecordingDataToQueue(Patient patient, PointOfCare poc, DateTime? date, DateTime? endDate,
        DateTime? eventDate, AlarmEnum.Name? alarmName, AlarmEnum.Severity severity, string? alarmDescription,
        bool start = true, AlarmEnum.Type type = AlarmEnum.Type.Manual);

    Task SendRecordingData(Patient patient, PointOfCare poc, ManualRecording manualRecording, bool start);

    Task<bool> SendAutoRecordingData(Patient patient, PointOfCare poc, RecordingData automaticRecording);

    Task<List<RecordingData>?> GetRecordings(int roomName);
}