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

from __future__ import annotations
from moovio_sdk.types import BaseModel
import pydantic
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class CardPaymentTypedDict(TypedDict):
    statement_descriptor: NotRequired[str]


class CardPayment(BaseModel):
    statement_descriptor: Annotated[
        Optional[str], pydantic.Field(alias="statementDescriptor")
    ] = None


class AchPaymentTypedDict(TypedDict):
    company_name: NotRequired[str]


class AchPayment(BaseModel):
    company_name: Annotated[Optional[str], pydantic.Field(alias="companyName")] = None


class CreateAccountSettingsTypedDict(TypedDict):
    card_payment: NotRequired[CardPaymentTypedDict]
    ach_payment: NotRequired[AchPaymentTypedDict]


class CreateAccountSettings(BaseModel):
    card_payment: Annotated[
        Optional[CardPayment], pydantic.Field(alias="cardPayment")
    ] = None

    ach_payment: Annotated[Optional[AchPayment], pydantic.Field(alias="achPayment")] = (
        None
    )
