namespace UniVerse.Application.DTOs.Notifications;

public static class NotificationChannels
{
    public const string Email = "email";
}

public record NotificationMessage(
    string Channel,
    string Recipient,
    string Subject,
    string Body,
    string? RecipientName = null,
    IReadOnlyDictionary<string, string>? Metadata = null);

public record SendNotificationRequest(
    string Channel,
    string Recipient,
    string Subject,
    string Body,
    string? RecipientName = null,
    IReadOnlyDictionary<string, string>? Metadata = null);

public record ScheduleNotificationRequest(
    string Channel,
    string Recipient,
    string Subject,
    string Body,
    DateTimeOffset SendAt,
    string? RecipientName = null,
    IReadOnlyDictionary<string, string>? Metadata = null);

public record ScheduledNotificationResponse(string JobId, DateTimeOffset SendAt);

public record UserNotificationDto(
    int Id,
    string Type,
    string Title,
    string Body,
    bool IsRead,
    DateTime CreatedAt
);
