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

from __future__ import annotations
from .bankaccountholdertype import BankAccountHolderType
from .bankaccounttype import BankAccountType
from moovio_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class BankAccountIntegrationTypedDict(TypedDict):
    holder_name: str
    holder_type: BankAccountHolderType
    r"""The type of holder on a funding source."""
    account_number: str
    bank_account_type: BankAccountType
    r"""The bank account type."""
    routing_number: str


class BankAccountIntegration(BaseModel):
    holder_name: Annotated[str, pydantic.Field(alias="holderName")]

    holder_type: Annotated[BankAccountHolderType, pydantic.Field(alias="holderType")]
    r"""The type of holder on a funding source."""

    account_number: Annotated[str, pydantic.Field(alias="accountNumber")]

    bank_account_type: Annotated[
        BankAccountType, pydantic.Field(alias="bankAccountType")
    ]
    r"""The bank account type."""

    routing_number: Annotated[str, pydantic.Field(alias="routingNumber")]


try:
    BankAccountIntegration.model_rebuild()
except NameError:
    pass
