using System;

namespace AsbCloudApp.Data;

/// <summary>
/// DTO уведомления
/// </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>
	/// Сообщение уведомления
	/// </summary>
	public string Message { get; set; } = null!;

	/// <summary>
	/// Дата отправки уведомления
	/// </summary>
	public DateTime? SentDate { get; set; }

	/// <summary>
	/// Дата прочтения уведомления
	/// </summary>
	public DateTime? ReadDate { get; set; }
	
	/// <summary>
	/// Состояние уведомления
	/// 0 - Зарегистрировано,
	/// 1 - Отправлено,
	/// 2 - Прочитано
	/// </summary>
	public int IdState
	{
		get
		{
			if (SentDate is not null && ReadDate is not null)
				return 2;

			if (SentDate is not null)
				return 1;

			return 0;
		}
	}

	/// <summary>
	/// Id типа доставки уведомления
	/// 0 - SignalR
	/// </summary>
	public int IdTransportType { get; set; }
	
	/// <summary>
	/// DTO категории уведомления
	/// </summary>
	public NotificationCategoryDto NotificationCategory { get; set; } = null!;
}