namespace RobotNet.Script.Expressions;

/// <summary>
/// Quản lý các thuộc tính của một phần tử trong bản đồ.
/// </summary>
public record ElementProperties
{
    /// <summary>
    /// Gets or sets a value indicating whether the resource is currently open.
    /// </summary>
    public bool IsOpen { get; set; }

    /// <summary>
    /// Gets a dictionary that maps string keys to boolean values.
    /// </summary>
    public IDictionary<string, bool> Bool { get; }

    /// <summary>
    /// Gets a dictionary that maps string keys to double values.
    /// </summary>
    public IDictionary<string, double> Double { get; }

    /// <summary>
    /// Gets a dictionary that maps string keys to integer values.
    /// </summary>
    public IDictionary<string, int> Int { get; }

    /// <summary>
    /// Gets a dictionary that maps string keys to string values.
    /// </summary>
    public IDictionary<string, string> String { get; }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="isOpen"></param>
    /// <param name="dbool"></param>
    /// <param name="ddouble"></param>
    /// <param name="dint"></param>
    /// <param name="dstring"></param>
    public ElementProperties(bool isOpen, IDictionary<string, bool> dbool, IDictionary<string, double> ddouble, IDictionary<string, int> dint, IDictionary<string, string> dstring)
    {
        IsOpen = isOpen;
        Bool = dbool;
        Double = ddouble;
        Int = dint;
        String = dstring;
    }
}