"Class for the graphs and potential research"

from pydantic import BaseModel, Field


class Line(BaseModel):
    "A line graph for the powerpoint presentation"
    title: str = Field(..., title="The title of the line graph under 10 tokens")
    x_axis: str = Field(
        ...,
        title="The x axis of the line graph, can be dates, numbers, or text categories",
    )
    y_axis: list[dict[str, list]] = Field(
        ...,
        title="The series of the line graph as a key value pair where the key is the series name and value is a list of the values",
    )


class Bar(BaseModel):
    "A bar graph for the powerpoint presentation"
    title: str = Field(..., title="The title of the bar graph under 10 tokens")
    x_axis: str = Field(
        ..., title="The x axis of the bar graph can be a date or a number"
    )
    y_axis: list[dict[str, list]] = Field(
        ...,
        title="The series of the bar graph as a key value pair where the key is the series name and value is a list of the values",
    )


class Pie(BaseModel):
    "A pie graph for the powerpoint presentation"
    title: str = Field(..., title="The title of the pie graph under 10 tokens")
    values: list[dict[str, int]] = Field(
        ...,
        title="The values of the pie graph as a key value pair where the key is the series name and value is the value",
    )


class Scatter(BaseModel):
    "A scatter graph for the powerpoint presentation"
    title: str = Field(..., title="The title of the scatter graph under 10 tokens")
    x_axis: str = Field(
        ..., title="The x axis of the scatter graph can be a date or a number"
    )
    y_axis: str = Field(..., title="The y axis of the scatter graph")
