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

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


class EmployeeCheckNumberMappingTypedDict(TypedDict):
    employee_uuid: NotRequired[str]
    r"""The UUID for an employee"""
    check_number: NotRequired[float]
    r"""The check number for the relevant employee"""


class EmployeeCheckNumberMapping(BaseModel):
    employee_uuid: Optional[str] = None
    r"""The UUID for an employee"""

    check_number: Optional[float] = None
    r"""The check number for the relevant employee"""


class PayrollCheckTypedDict(TypedDict):
    r"""Example response"""

    payroll_uuid: NotRequired[str]
    r"""A unique identifier of the payroll."""
    printing_format: NotRequired[str]
    r"""The format the checks will be printed."""
    starting_check_number: NotRequired[str]
    r"""The starting check number for the checks being printed."""
    request_uuid: NotRequired[str]
    r"""A unique identifier of the Generated Document request"""
    status: NotRequired[str]
    r"""Current status of the Generated Document"""
    employee_check_number_mapping: NotRequired[
        List[EmployeeCheckNumberMappingTypedDict]
    ]
    r"""An array of mapping employee uuids to their check numbers"""


class PayrollCheck(BaseModel):
    r"""Example response"""

    payroll_uuid: Optional[str] = None
    r"""A unique identifier of the payroll."""

    printing_format: Optional[str] = None
    r"""The format the checks will be printed."""

    starting_check_number: Optional[str] = None
    r"""The starting check number for the checks being printed."""

    request_uuid: Optional[str] = None
    r"""A unique identifier of the Generated Document request"""

    status: Optional[str] = None
    r"""Current status of the Generated Document"""

    employee_check_number_mapping: Optional[List[EmployeeCheckNumberMapping]] = None
    r"""An array of mapping employee uuids to their check numbers"""
