2023-07-07 16:26:16 +05:00
|
|
|
using System;
|
2023-07-11 18:57:25 +05:00
|
|
|
using System.Text.Json.Serialization;
|
2023-07-07 16:26:16 +05:00
|
|
|
|
|
|
|
namespace AsbCloudApp.Data;
|
|
|
|
|
|
|
|
/// <summary>
|
2023-07-11 18:57:25 +05:00
|
|
|
/// DTO уведомления
|
2023-07-07 16:26:16 +05:00
|
|
|
/// </summary>
|
|
|
|
public class NotificationDto : IId
|
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
/// Id уведомления
|
|
|
|
/// </summary>
|
|
|
|
public int Id { get; set; }
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Id получателя уведомления
|
|
|
|
/// </summary>
|
|
|
|
public int IdUser { get; set; }
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Id категории уведомления
|
|
|
|
/// </summary>
|
|
|
|
public int IdNotificationCategory { get; set; }
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Заголовок уведомления
|
|
|
|
/// </summary>
|
|
|
|
public string Title { get; set; } = null!;
|
|
|
|
|
|
|
|
/// <summary>
|
2023-07-11 18:57:25 +05:00
|
|
|
/// Сообщение уведомления
|
2023-07-07 16:26:16 +05:00
|
|
|
/// </summary>
|
2023-07-11 18:57:25 +05:00
|
|
|
public string Message { get; set; } = null!;
|
2023-07-07 16:26:16 +05:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Время жизни уведомления
|
|
|
|
/// </summary>
|
|
|
|
public TimeSpan TimeToLife { get; set; }
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Дата отправки уведомления
|
|
|
|
/// </summary>
|
2023-07-11 18:57:25 +05:00
|
|
|
public DateTime? SentDate { get; set; }
|
|
|
|
|
2023-07-10 16:43:58 +05:00
|
|
|
/// <summary>
|
2023-07-11 18:57:25 +05:00
|
|
|
/// Состояния уведомления
|
2023-07-10 16:43:58 +05:00
|
|
|
/// </summary>
|
2023-07-11 18:57:25 +05:00
|
|
|
public NotificationState NotificationState { get; set; }
|
2023-07-07 16:26:16 +05:00
|
|
|
|
|
|
|
/// <summary>
|
2023-07-11 18:57:25 +05:00
|
|
|
/// Способ доставки уведомления
|
2023-07-07 16:26:16 +05:00
|
|
|
/// </summary>
|
2023-07-11 18:57:25 +05:00
|
|
|
public NotificationTransport NotificationTransport { get; set; }
|
|
|
|
|
2023-07-07 16:26:16 +05:00
|
|
|
/// <summary>
|
|
|
|
/// DTO категории уведомления
|
|
|
|
/// </summary>
|
|
|
|
public NotificationCategoryDto NotificationCategory { get; set; } = null!;
|
2023-07-11 18:57:25 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Состояние уведомления
|
|
|
|
/// </summary>
|
|
|
|
[JsonConverter(typeof(JsonStringEnumConverter))]
|
|
|
|
public enum NotificationState
|
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
/// Зарегистрировано
|
|
|
|
/// </summary>
|
|
|
|
Registered = 1,
|
|
|
|
/// <summary>
|
|
|
|
/// Отправлено
|
|
|
|
/// </summary>
|
|
|
|
Sent = 2,
|
|
|
|
/// <summary>
|
|
|
|
/// Прочитано
|
|
|
|
/// </summary>
|
|
|
|
Read = 3,
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Способ отправки уведомления
|
|
|
|
/// </summary>
|
|
|
|
[JsonConverter(typeof(JsonStringEnumConverter))]
|
|
|
|
public enum NotificationTransport
|
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
/// SignalR
|
|
|
|
/// </summary>
|
|
|
|
SignalR = 1
|
2023-07-07 16:26:16 +05:00
|
|
|
}
|