using RobotNet.WebApp.Charts.Enums;
using System.Text.Json.Serialization;

namespace RobotNet.WebApp.Charts.Models.Common.Plugins;

public class ChartPluginsDataLabels
{
    public DataLabelsAlignment Align { get; set; } = DataLabelsAlignment.Center;
    public DataLabelsAnchoring Anchor { get; set; } = DataLabelsAnchoring.Center;

    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public string? BackgroundColor { get; set; }
    public string BorderColor { get; set; } = "white";
    public double BorderRadius { get; set; } = 25;
    public double BorderWidth { get; set; } = 2;
    public bool Clamp { get; set; } = false;
    public bool Clip { get; set; } = false;
    public string Color { get; set; } = "white";
    public bool Display { get; set; } = true;
    public ChartFont Font { get; set; } = new();
    public int Offset { get; set; } = 4;
    public double Opacity { get; set; } = 1;

    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public ChartPadding? Padding { get; set; }
    public int Rotation { get; set; }

    public DataLabelsAlignment TextAlign { get; set; } = DataLabelsAlignment.Center;

    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public string? TextStrokeColor { get; set; }
    public int TextStrokeWidth { get; set; }
    public int TextShadowBlur { get; set; }

    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public string? TextShadowColor { get; set; }
}
