using System.Text.Json.Serialization;

namespace RobotNet.WebApp.Charts.Models.BarChart.Axes;

public class ChartAxesBorder
{
    /// <summary>
    /// The color of the border line.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public string? Color { get; set; }

    /// <summary>
    /// Length and spacing of dashes on grid lines
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public List<int>? Dash { get; set; }

    /// <summary>
    /// Offset for line dashes.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public int? DashOffset { get; set; }

    /// <summary>
    /// If <see langword="true" />, draw a border at the edge between the axis and the chart area.
    /// </summary>
    public bool Display { get; set; } = true;

    /// <summary>
    /// The width of the border line.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public int? Width { get; set; }

    /// <summary>
    /// z-index of the border layer. Values <= 0 are drawn under datasets, > 0 on top.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public int? Z { get; set; }
}
