using RobotNet.WebApp.Charts.Enums;
using System.Text.Json.Serialization;
namespace RobotNet.WebApp.Charts.Models.BarChart.Axes;
public class ChartAxes
{
///
/// If true, scale will include 0 if it is not already included.
///
public bool BeginAtZero { get; set; } = true;
///
/// Define options for the border that run perpendicular to the axis.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public ChartAxesBorder? Border { get; set; }
///
/// Gets or sets the grid configuration.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public ChartAxesGrid? Grid { get; set; }
///
/// User defined maximum number for the scale, overrides maximum value from data.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public double? Max { get; set; }
///
/// User defined minimum number for the scale, overrides minimum value from data.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public double? Min { get; set; }
///
/// Should the data be stacked.
/// By default data is not stacked.
/// If the stacked option of the value scale (y-axis on horizontal chart) is true, positive and negative values are stacked
/// separately.
///
public bool Stacked { get; set; }
///
/// Adjustment used when calculating the maximum data value.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public double? SuggestedMax { get; set; }
///
/// Adjustment used when calculating the minimum data value.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public double? SuggestedMin { get; set; }
///
/// Gets or sets the tick configuration.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public ChartAxesTicks? Ticks { get; set; }
///
/// Gets or sets the title configuration.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public ChartAxesTitle? Title { get; set; }
///
/// Gets or sets the index scale type. />.
///
///
/// Default value is .
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public ChartAxesType? Type { get; set; } = null;
///
/// The weight used to sort the axis. Higher weights are further away from the chart area.
///
public int? Weight { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public TitlePosition? Position { get; set; }
}