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

from __future__ import annotations
from .transferpaymentmethodswallet import (
    TransferPaymentMethodsWallet,
    TransferPaymentMethodsWalletTypedDict,
)
from enum import Enum
from moovio_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class MoovWalletTransferPaymentMethodPaymentMethodType(str, Enum):
    MOOV_WALLET = "moov-wallet"


class MoovWalletTransferPaymentMethodTypedDict(TypedDict):
    payment_method_id: str
    r"""ID of the payment method."""
    payment_method_type: MoovWalletTransferPaymentMethodPaymentMethodType
    wallet: TransferPaymentMethodsWalletTypedDict


class MoovWalletTransferPaymentMethod(BaseModel):
    payment_method_id: Annotated[str, pydantic.Field(alias="paymentMethodID")]
    r"""ID of the payment method."""

    payment_method_type: Annotated[
        MoovWalletTransferPaymentMethodPaymentMethodType,
        pydantic.Field(alias="paymentMethodType"),
    ]

    wallet: TransferPaymentMethodsWallet


try:
    MoovWalletTransferPaymentMethod.model_rebuild()
except NameError:
    pass
