public interface IAlertService
{
    Task<PagedResult<ClinicalAlert>> ListByEncounterAsync(
        Guid encounterId, AlertStatus? status, int page, int pageSize);

    Task<PagedResult<ClinicalAlert>> ListGlobalAsync(
        AlertStatus? status, AlertSeverity? severity, Department? department, int page, int pageSize);

    Task<ClinicalAlert> GetByIdAsync(Guid id);

    Task<ClinicalAlert> AcknowledgeAsync(Guid id, AcknowledgeAlertRequest req);

    Task<ClinicalAlert> ResolveAsync(Guid id);
    Task ApplySyncedAcknowledgmentAsync(Guid alertId, SyncedAlertAcknowledgment ack, CancellationToken ct);
    Task ApplySyncedResolutionAsync(Guid alertId, SyncedAlertResolution resolve, CancellationToken ct);
    Task<AlertFeedback> SubmitFeedbackAsync(Guid alertId, AlertFeedbackType type, string? comment);
}