from dataclasses import dataclass

"""In this file, we define the PlottingOptions dataclass, which is used to store the plotting
preferences, defined in the UI for the plots generated by the Helix package. All plots
will then have the same style, such as font size, font family, colour scheme, etc."""


@dataclass
class PlottingOptions:
    plot_axis_font_size: int
    plot_axis_tick_size: int
    plot_colour_scheme: str
    dpi: int
    angle_rotate_xaxis_labels: int
    angle_rotate_yaxis_labels: int
    save_plots: bool
    plot_title_font_size: int
    plot_font_family: str
    height: int | float
    width: int | float
    plot_colour_map: str = "viridis"
    plot_title: str | None = None
    yaxis_label: str | None = None
    xaxis_label: str | None = None
    plot_colour: str | None = None
