using PARR.Domain.Enums;
using System.Text.Json.Serialization;

namespace PARR.API.Contracts.V1.Requests.Queries
{
    public class TemplateQuery
    {
        ///// <summary>
        ///// Статус шаблона: 10, 20, 30
        ///// </summary>
        //public int? StatusCode { get; set; }

        /// <summary>
        /// Поиск по маске. Например: "ДВС-*"
        /// </summary>
        public string? Mask { get; set; }


        /// <summary>
        /// Поиск по ИД Задания (JobId)
        /// </summary>
        public Guid? JobId { get; set; }

        /// <summary>
        /// StatusType
        /// </summary>
        public TemplateStatusTypeEnum? StatusTypeId { get; set; }

        /// <summary>
        /// Статус синхронизации шаблонов и расписаний
        /// </summary>
        public TemplateQuerySyncStatusEnum? SyncStatus { get; set; }

        /// <summary>
        /// Применять шорткоды
        /// </summary>
        public bool? ApplyShortcode { get; set; }
    }

    /// <summary>
    /// Статус синхронизации шаблонов и расписаний
    /// </summary>
    [JsonConverter(typeof(JsonStringEnumConverter))]
    public enum TemplateQuerySyncStatusEnum
    {
        /// <summary>
        /// Ожидает синхронизации
        /// </summary>
        Waiting = 0,
        /// <summary>
        /// Выполнена синхронизация
        /// </summary>
        Complete = 1,
        /// <summary>
        /// Ошибка синхронизации
        /// </summary>
        Error = 2
    }
}
