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

from __future__ import annotations
from enum import Enum
from gusto_embedded.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class TimeOffType(str, Enum):
    r"""Type of the time off activity"""

    VACATION = "vacation"
    SICK = "sick"


class TimeOffActivityTypedDict(TypedDict):
    r"""Representation of a Time Off Activity"""

    policy_uuid: NotRequired[str]
    r"""unique identifier of a time off policy"""
    time_off_type: NotRequired[TimeOffType]
    r"""Type of the time off activity"""
    policy_name: NotRequired[str]
    r"""The name of the time off policy for this activity"""
    event_type: NotRequired[str]
    r"""The type of the time off event/activity"""
    event_description: NotRequired[str]
    r"""A description for the time off event/activity"""
    effective_time: NotRequired[str]
    r"""The datetime of the time off activity"""
    balance: NotRequired[str]
    r"""The time off balance at the time of the activity"""
    balance_change: NotRequired[str]
    r"""The amount the time off balance changed as a result of the activity"""


class TimeOffActivity(BaseModel):
    r"""Representation of a Time Off Activity"""

    policy_uuid: Optional[str] = None
    r"""unique identifier of a time off policy"""

    time_off_type: Optional[TimeOffType] = None
    r"""Type of the time off activity"""

    policy_name: Optional[str] = None
    r"""The name of the time off policy for this activity"""

    event_type: Optional[str] = None
    r"""The type of the time off event/activity"""

    event_description: Optional[str] = None
    r"""A description for the time off event/activity"""

    effective_time: Optional[str] = None
    r"""The datetime of the time off activity"""

    balance: Optional[str] = None
    r"""The time off balance at the time of the activity"""

    balance_change: Optional[str] = None
    r"""The amount the time off balance changed as a result of the activity"""
