"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from gusto_embedded.types import BaseModel
import pydantic
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class SchemaTypedDict(TypedDict):
    holiday_key: NotRequired[str]
    r"""the holiday's identifier"""
    holiday_name: NotRequired[str]
    r"""the holiday's official name"""
    start_date: NotRequired[str]
    r"""the holiday's start date (YYYY-MM-DD)"""
    end_date: NotRequired[str]
    r"""the holiday's end date (YYYY-MM-DD)"""


class Schema(BaseModel):
    holiday_key: Optional[str] = None
    r"""the holiday's identifier"""

    holiday_name: Optional[str] = None
    r"""the holiday's official name"""

    start_date: Optional[str] = None
    r"""the holiday's start date (YYYY-MM-DD)"""

    end_date: Optional[str] = None
    r"""the holiday's end date (YYYY-MM-DD)"""


class PaidHolidaysTypedDict(TypedDict):
    r"""Representation of a company's paid holidays as descibed by their Holiday Pay Policy"""

    schema_: NotRequired[SchemaTypedDict]


class PaidHolidays(BaseModel):
    r"""Representation of a company's paid holidays as descibed by their Holiday Pay Policy"""

    schema_: Annotated[Optional[Schema], pydantic.Field(alias="schema")] = None
