using System.Collections;
using System.ComponentModel.DataAnnotations;

namespace AsbCloudApp.Data;

/// <summary>
/// Состояние фоновой задачи
/// </summary>
public enum JobState
{
    /// <summary>
    /// Ожидает в очереди на выполнение
    /// </summary>
    Waiting,
    /// <summary>
    /// выполняется
    /// </summary>
    Working,
    /// <summary>
    /// успешно выполнена
    /// </summary>
    Done,
    /// <summary>
    /// завершена с ошибкой
    /// </summary>
    Fail
};

/// <summary>
/// работа фоновой задачи
/// </summary>
public class JobDto
{
    /// <summary>
    /// идентификатор
    /// </summary>
    [Required]
    public int Id { get; set; }

    /// <summary>
    /// Состояние
    /// </summary>
    [Required]
    public JobState State { get; set; }

    /// <summary>
    /// результат выполнения
    /// </summary>
    public Hashtable? Results { get; set; }

    /// <summary>
    /// Исключение, если возникла ошибка
    /// </summary>
    public string? Error { get; set; }
}