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

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

public class ChartPluginsTitle
{
    /// <summary>
    /// Alignment of the title.
    /// Options are: 'start', 'center', and 'end'
    /// </summary>
    public TitleAlignment Align { get; set; } = TitleAlignment.Center;
    /// <summary>
    /// Color of text.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public string? Color { get; set; }

    /// <summary>
    /// Is the title shown?
    /// </summary>
    public bool Display { get; set; } = true;

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

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

    public bool FullSize { get; set; } = true;

    /// <summary>
    /// Gets or sets the position of the title.
    /// </summary>
    public TitlePosition Position { get; set; } = TitlePosition.Top;

    /// <summary>
    /// Gets or sets the number of pixels to add above and below the title text.
    /// </summary>
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public ChartPadding? Padding { get; set; }
}
