namespace PARR.Core.Services.TaskServices.Models
{
    /// <summary>
    /// Отчет о выполнении Reconciliation Job.
    /// Используется для мониторинга и логирования.
    /// </summary>
    internal class ReconciliationReport
    {
        /// <summary>
        /// Время начала выполнения
        /// </summary>
        public DateTimeOffset StartedAt { get; set; }

        /// <summary>
        /// Время завершения выполнения
        /// </summary>
        public DateTimeOffset CompletedAt { get; set; }

        /// <summary>
        /// Сколько задач проверено
        /// </summary>
        public int CheckedCount { get; set; }

        /// <summary>
        /// Сколько задач исправлено (переведено в retry или failed)
        /// </summary>
        public int FixedCount { get; set; }

        /// <summary>
        /// Сколько задач отправлено на retry
        /// </summary>
        public int RetriedCount { get; set; }

        /// <summary>
        /// Сколько задач переведено в финальный failed
        /// </summary>
        public int FailedCount { get; set; }

        /// <summary>
        /// Сообщения/ошибки (для логирования)
        /// </summary>
        public List<string> Messages { get; set; } = new List<string>();

        /// <summary>
        /// Длительность выполнения
        /// </summary>
        public TimeSpan Duration => CompletedAt - StartedAt;

        /// <summary>
        /// Были ли какие-то действия (повторные отправки, перевод в ошибку)
        /// </summary>
        public bool HasChanged => FixedCount > 0;

    }
}
