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

from __future__ import annotations
from .cardvolumedistribution import (
    CardVolumeDistribution,
    CardVolumeDistributionTypedDict,
)
from .fulfillmentdetails import FulfillmentDetails, FulfillmentDetailsTypedDict
from .volumebycustomertype import VolumeByCustomerType, VolumeByCustomerTypeTypedDict
from moovio_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class UpdateUnderwritingTypedDict(TypedDict):
    average_transaction_size: int
    max_transaction_size: int
    average_monthly_transaction_volume: int
    volume_by_customer_type: VolumeByCustomerTypeTypedDict
    card_volume_distribution: CardVolumeDistributionTypedDict
    fulfillment: FulfillmentDetailsTypedDict


class UpdateUnderwriting(BaseModel):
    average_transaction_size: Annotated[
        int, pydantic.Field(alias="averageTransactionSize")
    ]

    max_transaction_size: Annotated[int, pydantic.Field(alias="maxTransactionSize")]

    average_monthly_transaction_volume: Annotated[
        int, pydantic.Field(alias="averageMonthlyTransactionVolume")
    ]

    volume_by_customer_type: Annotated[
        VolumeByCustomerType, pydantic.Field(alias="volumeByCustomerType")
    ]

    card_volume_distribution: Annotated[
        CardVolumeDistribution, pydantic.Field(alias="cardVolumeDistribution")
    ]

    fulfillment: FulfillmentDetails


try:
    UpdateUnderwriting.model_rebuild()
except NameError:
    pass
