using System.Xml.Serialization;

namespace MECF.Framework.Common.Device.Bases;

public class STPatternSetting
{

    #region Properties

    /// <summary>
    /// 返回当前工作模式名称。
    /// </summary>
    [XmlAttribute(AttributeName = "name")]
    public string Name { get; set; }

    /// <summary>
    /// 返回当前工作模式配置模板。
    /// </summary>
    [XmlAttribute(AttributeName = "pattern")]
    public string Pattern { get; set; }

    /// <summary>
    /// 返回当前工作模式的最大循环次数。
    /// </summary>
    [XmlAttribute(AttributeName = "cycles")]
    public int Cycles { get; set; }

    /// <summary>
    /// 返回当前工作模式的优先级。
    /// <remarks>
    /// 数字越小优先级越高。当信号塔动作合并时，优先级高的动作会覆盖优先级底的动作。
    /// </remarks>
    /// </summary>
    [XmlAttribute(AttributeName = "priority")]
    public int Priority { get; set; }

    /// <summary>
    /// 指定当前工作模式对应的信号塔组件。
    /// <remarks>
    /// 注意：此属性为JobDone模式专用，其它模式指定此属性无效。
    /// </remarks>
    /// </summary>
    [XmlAttribute(AttributeName = "part")]
    public string Part { get; set; }

    #endregion

    #region Methods

    /// <inheritdoc />
    public override string ToString()
    {
        return $"{Name}, {Pattern}";
    }

    #endregion
}