using PostFundManagement.Application.Services.Communications; using PostFundManagement.Domain; using PostFundManagement.Domain.Attributes; using PostFundManagement.Domain.Models; namespace PostFundManagement.Application.Abstractions.Services; public interface ICommunicationsService { [Log] [Audit] Task> SendInviteAsync(InviteRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] Task> GetInvitesAsync(Pagination pagination, CancellationToken cancellationToken = default); [Log] Task> GetApplicantInviteAsync(Guid applicantUserId, CancellationToken cancellationToken = default); [Log] Task> GetApplicantInvitesAsync(Guid applicantUserId, CancellationToken cancellationToken = default); [Log] [Audit] Task CreateNotificationAsync(CreateNotificationRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] [Audit] Task UpdateNotificationAsync(UpdateNotificationRequest request, CancellationToken cancellationToken = default); [Log] Task> GetNotificationsAsync(string organisationIdHash, CancellationToken cancellationToken = default); [Log] Task> GetNotificationAsync(string notificationIdHash, CancellationToken cancellationToken = default); [Log] Task> GetApplicantDataAsync(Guid applicantUserId, CancellationToken cancellationToken = default); }