using System;
using System.Text.Json.Serialization;

namespace MarcusLaw.OutlookAddin.Core.Models
{
    public sealed class RetryQueueItem
    {
        [JsonPropertyName("id")]
        public string Id { get; set; } = string.Empty;

        [JsonPropertyName("enqueuedAt")]
        public DateTimeOffset EnqueuedAt { get; set; }

        [JsonPropertyName("attemptCount")]
        public int AttemptCount { get; set; }

        [JsonPropertyName("lastError")]
        public string? LastError { get; set; }

        [JsonPropertyName("targetName")]
        public string TargetName { get; set; } = string.Empty;

        [JsonPropertyName("request")]
        public FileEmailRequest Request { get; set; } = new FileEmailRequest();
    }
}
