# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
import typing_extensions
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from ..core.serialization import FieldMetadata


class VendorResponseBillingData(UniversalBaseModel):
    """
    Object containing vendor's bank information
    """

    id: typing.Optional[int] = None
    account_id: typing_extensions.Annotated[
        typing.Optional[str], FieldMetadata(alias="accountId"), pydantic.Field(alias="accountId")
    ] = None
    nickname: typing.Optional[str] = None
    bank_name: typing_extensions.Annotated[
        typing.Optional[str], FieldMetadata(alias="bankName"), pydantic.Field(alias="bankName")
    ] = None
    routing_account: typing_extensions.Annotated[
        typing.Optional[str], FieldMetadata(alias="routingAccount"), pydantic.Field(alias="routingAccount")
    ] = None
    account_number: typing_extensions.Annotated[
        typing.Optional[str], FieldMetadata(alias="accountNumber"), pydantic.Field(alias="accountNumber")
    ] = None
    type_account: typing_extensions.Annotated[
        typing.Optional[str], FieldMetadata(alias="typeAccount"), pydantic.Field(alias="typeAccount")
    ] = None
    bank_account_holder_name: typing_extensions.Annotated[
        typing.Optional[str],
        FieldMetadata(alias="bankAccountHolderName"),
        pydantic.Field(alias="bankAccountHolderName"),
    ] = None
    bank_account_holder_type: typing_extensions.Annotated[
        typing.Optional[str],
        FieldMetadata(alias="bankAccountHolderType"),
        pydantic.Field(alias="bankAccountHolderType"),
    ] = None
    bank_account_function: typing_extensions.Annotated[
        typing.Optional[int], FieldMetadata(alias="bankAccountFunction"), pydantic.Field(alias="bankAccountFunction")
    ] = None
    verified: typing.Optional[bool] = None
    status: typing.Optional[int] = None
    services: typing.Optional[typing.List[typing.Any]] = None
    default: typing.Optional[bool] = None

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
