feat: modularize external providers

This commit is contained in:
2026-07-27 17:47:21 +08:00
parent db4c7b4496
commit 70b99e6063
47 changed files with 1219 additions and 667 deletions

View File

@@ -0,0 +1,26 @@
using System.Text.Json;
using Tiku.Domain.Operations;
namespace Tiku.Application.Notifications;
public sealed record InAppNotificationRequest(
Guid TenantId,
Guid UserId,
string NotificationType,
NotificationSeverity Severity,
string Title,
string Message,
Guid? CreatedBy = null,
string? ActionLabel = null,
string? ActionPath = null,
string? SourceType = null,
Guid? SourceId = null,
string? DedupeKey = null,
JsonElement Metadata = default);
public interface INotificationProvider
{
Task<UserNotification> UpsertInAppAsync(
InAppNotificationRequest request,
CancellationToken cancellationToken = default);
}