from typing import Optional

from attr import define, field
from attr.validators import instance_of, optional

from src.data_classes.parameters_general import GeneralParameters


@define
class PlotParameters(GeneralParameters):
    x_axis_label: Optional[str] = field(
        default=None, validator=optional(instance_of(str)), kw_only=True
    )
    y_axis_label: Optional[str] = field(
        default=None, validator=optional(instance_of(str)), kw_only=True
    )
    title: Optional[str] = field(
        default=None, validator=optional(instance_of(str)), kw_only=True
    )
