Implement step 17 modules: threads/messages, notifications with automation (submission.created, idea.created, grant_call.opened), innovation test feedback, admin panel (submissions, verify, metrics, grant call status), Middleman adaptation and partnerships. Split multi-type files into one type per file and replace object-valued dictionaries with string-valued maps in data contracts (migrations 0006/0007).
28 lines
728 B
C#
28 lines
728 B
C#
using TarninaHub.Application.Dtos;
|
|
|
|
namespace TarninaHub.Application.Abstractions;
|
|
|
|
|
|
public interface INotificationService
|
|
{
|
|
Task NotifyStaffAsync(
|
|
string type,
|
|
IReadOnlyDictionary<string, string?> payload,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task NotifyUserAsync(
|
|
string userId,
|
|
string type,
|
|
IReadOnlyDictionary<string, string?> payload,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task<IReadOnlyList<NotificationResponse>> ListForUserAsync(
|
|
string userId,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task<NotificationResponse?> MarkReadAsync(
|
|
string notificationId,
|
|
string userId,
|
|
CancellationToken cancellationToken);
|
|
}
|