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

from __future__ import annotations
from .amountdecimal import AmountDecimal, AmountDecimalTypedDict
from moovio_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class PartnerFeesTypedDict(TypedDict):
    r"""Monthly partner costs that are charged separately and not included in residual subtotal (e.g. platform fees, minimums)."""

    minimum_commitment: AmountDecimalTypedDict
    r"""The minimum spending amount that must be met in the billing period. If actual usage is below the minimum amount, account is charged the difference."""
    monthly_platform: AmountDecimalTypedDict
    r"""Fixed recurring fee for the billing period regardless of usage."""
    total: AmountDecimalTypedDict
    r"""Total partner fees."""


class PartnerFees(BaseModel):
    r"""Monthly partner costs that are charged separately and not included in residual subtotal (e.g. platform fees, minimums)."""

    minimum_commitment: Annotated[
        AmountDecimal, pydantic.Field(alias="minimumCommitment")
    ]
    r"""The minimum spending amount that must be met in the billing period. If actual usage is below the minimum amount, account is charged the difference."""

    monthly_platform: Annotated[AmountDecimal, pydantic.Field(alias="monthlyPlatform")]
    r"""Fixed recurring fee for the billing period regardless of usage."""

    total: AmountDecimal
    r"""Total partner fees."""


try:
    PartnerFees.model_rebuild()
except NameError:
    pass
