using MapoSDK;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IOB_UT_NEXT.Config.Special
{
    /// <summary>
    /// Definizione di una step action (per effettuare una scrittura sul PLC con eventuale ritardo)
    /// </summary>
    public class StepActionDto
    {

        /// <summary>
        /// Idx Azione (per ordinamento)
        /// </summary>
        public int IdxAct { get; set; } = 0;
        
        /// <summary>
        /// Nome azione
        /// </summary>
        public string Name { get; set; } = "";

        /// <summary>
        /// Valore composto (a partire da altri valori in mMap),da usare se != null
        /// Sostituzione token espressi nel formato [[token]]
        /// </summary>
        public string CompoValMMap { get; set; } = null;

#if false
        /// <summary>
        /// Valore composto (a partire da altri valori in ProdData),da usare se != null
        /// Sostituzione token espressi nel formato [[token]]
        /// </summary>
        public string CompoValProdData { get; set; } = null; 
#endif

        /// <summary>
        /// Valore fix da inviare alla memoria se != null
        /// </summary>
        public string FixVal { get; set; } = null;

        /// <summary>
        /// Nome valore memoria da usare (OUT/Write)
        /// </summary>
        public string MMapWrite { get; set; } = "";

        /// <summary>
        /// Tempo di attesa prima dell'azione (se >0) in ms
        /// </summary>
        public int WaitTimeMs { get; set; } = 0;
    }
}
