using RobotNet.WebApp.Charts.Models.Common;
using System.Text.Json.Serialization;

namespace RobotNet.WebApp.Charts.Models.PieChart;

public class PieChartOptions : ChartOptions
{
    public PieChartPlugins Plugins { get; set; } = new();

    /// <summary>
    /// Gets or sets the percentage of the chart that is cut out of the middle.
    /// <para>Default for Pie is 0, Default for Doughnut is 50. This will be filled in by Chart.js unless you specify a non-null value.</para>
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public string? Cutout { get; set; }

    /// <summary>
    /// Gets or sets the animation-configuration for this chart.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public new ArcAnimation? Animation { get; set; }

    /// <summary>
    /// Gets or sets the starting angle to draw arcs from.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public double? Rotation { get; set; }

    /// <summary>
    /// The outer radius of the chart.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public double? Radius { get; set; }

    /// <summary>
    /// Gets or sets the sweep to allow arcs to cover.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public double? Circumference { get; set; }
}
