using LightlessSync.LightlessConfiguration.Models;

namespace LightlessSync.UI.Models;

public class LightlessNotification
{
    public string Id { get; set; } = Guid.NewGuid().ToString();
    public string Title { get; set; } = string.Empty;
    public string Message { get; set; } = string.Empty;
    public NotificationType Type { get; set; } = NotificationType.Info;
    public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
    public TimeSpan Duration { get; set; } = TimeSpan.FromSeconds(5);
    public bool IsExpired => DateTime.UtcNow - CreatedAt > Duration;
    public bool IsDismissed { get; set; } = false;
    public List<LightlessNotificationAction> Actions { get; set; } = new();
    public bool ShowProgress { get; set; } = false;
    public float Progress { get; set; } = 0f;
    public float AnimationProgress { get; set; } = 0f;
    public bool IsAnimatingIn { get; set; } = true;
    public bool IsAnimatingOut { get; set; } = false;
    public uint? SoundEffectId { get; set; } = null;
}
