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 UpsertInAppAsync( InAppNotificationRequest request, CancellationToken cancellationToken = default); }