# 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 StatBasicExtendedQueryRecord(UniversalBaseModel):
    stat_x: typing_extensions.Annotated[str, FieldMetadata(alias="statX")] = pydantic.Field()
    """
    The time window based on the mode and frequency used for the query.
    """

    out_customers: typing_extensions.Annotated[int, FieldMetadata(alias="outCustomers")] = pydantic.Field()
    """
    Number of active vendors.
    """

    out_new_customers: typing_extensions.Annotated[int, FieldMetadata(alias="outNewCustomers")] = pydantic.Field()
    """
    Number of new vendors.
    """

    out_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="outTransactions")] = pydantic.Field()
    """
    Outbound (payout) transactions count.
    """

    out_subscriptions_paid: typing_extensions.Annotated[int, FieldMetadata(alias="outSubscriptionsPaid")] = (
        pydantic.Field()
    )
    """
    Recurring outbound (payout) transactions count.
    """

    out_card_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="outCardTransactions")] = (
        pydantic.Field()
    )
    """
    Outbound (payout) pCard transactions count.
    """

    out_v_card_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="outVCardTransactions")] = (
        pydantic.Field()
    )
    """
    Outbound (payout) vCard transactions count.
    """

    out_ach_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="outACHTransactions")] = pydantic.Field()
    """
    Outbound (payout) ACH transactions count.
    """

    out_check_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="outCheckTransactions")] = (
        pydantic.Field()
    )
    """
    Outbound (payout) check transactions count.
    """

    out_pending_method_transactions: typing_extensions.Annotated[
        int, FieldMetadata(alias="outPendingMethodTransactions")
    ] = pydantic.Field()
    """
    Outbound (payout) Managed Payables transactions count.
    """

    out_transactions_volume: typing_extensions.Annotated[float, FieldMetadata(alias="outTransactionsVolume")] = (
        pydantic.Field()
    )
    """
    Outbound (payout) volume.
    """

    out_subscriptions_paid_volume: typing_extensions.Annotated[
        float, FieldMetadata(alias="outSubscriptionsPaidVolume")
    ] = pydantic.Field()
    """
    Recurring outbound (payout) volume.
    """

    out_card_volume: typing_extensions.Annotated[float, FieldMetadata(alias="outCardVolume")] = pydantic.Field()
    """
    Outbound (payout) pCard transactions volume.
    """

    out_v_card_volume: typing_extensions.Annotated[float, FieldMetadata(alias="outVCardVolume")] = pydantic.Field()
    """
    Outbound (payout) vCard transactions volume.
    """

    out_ach_volume: typing_extensions.Annotated[float, FieldMetadata(alias="outACHVolume")] = pydantic.Field()
    """
    Outbound (payout) ACH transactions volume.
    """

    out_check_volume: typing_extensions.Annotated[float, FieldMetadata(alias="outCheckVolume")] = pydantic.Field()
    """
    Outbound (payout) check transactions volume.
    """

    out_pending_method_volume: typing_extensions.Annotated[float, FieldMetadata(alias="outPendingMethodVolume")] = (
        pydantic.Field()
    )
    """
    Outbound (payout) Managed Payables volume.
    """

    in_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="inTransactions")] = pydantic.Field()
    """
    Inbound transactions count.
    """

    in_subscriptions_paid: typing_extensions.Annotated[int, FieldMetadata(alias="inSubscriptionsPaid")] = (
        pydantic.Field()
    )
    """
    Inbound recurring transactions count.
    """

    in_customers: typing_extensions.Annotated[int, FieldMetadata(alias="inCustomers")] = pydantic.Field()
    """
    Number of active customers.
    """

    in_new_customers: typing_extensions.Annotated[int, FieldMetadata(alias="inNewCustomers")] = pydantic.Field()
    """
    Number of new customers.
    """

    in_card_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="inCardTransactions")] = pydantic.Field()
    """
    Inbound card transactions count.
    """

    in_ach_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="inACHTransactions")] = pydantic.Field()
    """
    Inbound ACH transactions count.
    """

    in_check_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="inCheckTransactions")] = (
        pydantic.Field()
    )
    """
    Inbound check transactions count.
    """

    in_cash_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="inCashTransactions")] = pydantic.Field()
    """
    Inbound cash transactions count.
    """

    in_wallet_transactions: typing_extensions.Annotated[int, FieldMetadata(alias="inWalletTransactions")] = (
        pydantic.Field()
    )
    """
    Inbound wallet transactions count.
    """

    in_card_charge_backs: typing_extensions.Annotated[int, FieldMetadata(alias="inCardChargeBacks")] = pydantic.Field()
    """
    Inbound card chargebacks and returns count.
    """

    in_ach_returns: typing_extensions.Annotated[int, FieldMetadata(alias="inACHReturns")] = pydantic.Field()
    """
    Inbound ACH returns count.
    """

    in_transactions_volume: typing_extensions.Annotated[float, FieldMetadata(alias="inTransactionsVolume")] = (
        pydantic.Field()
    )
    """
    Inbound volume.
    """

    in_subscriptions_paid_volume: typing_extensions.Annotated[
        float, FieldMetadata(alias="inSubscriptionsPaidVolume")
    ] = pydantic.Field()
    """
    Inbound recurring payments volume.
    """

    in_card_volume: typing_extensions.Annotated[float, FieldMetadata(alias="inCardVolume")] = pydantic.Field()
    """
    Inbound card volume.
    """

    in_ach_volume: typing_extensions.Annotated[float, FieldMetadata(alias="inACHVolume")] = pydantic.Field()
    """
    Inbound ACH volume.
    """

    in_check_volume: typing_extensions.Annotated[float, FieldMetadata(alias="inCheckVolume")] = pydantic.Field()
    """
    Inbound check volume.
    """

    in_cash_volume: typing_extensions.Annotated[float, FieldMetadata(alias="inCashVolume")] = pydantic.Field()
    """
    Inbound cash volume recognized.
    """

    in_wallet_volume: typing_extensions.Annotated[float, FieldMetadata(alias="inWalletVolume")] = pydantic.Field()
    """
    Inbound wallet transactions.
    """

    in_card_charge_back_volume: typing_extensions.Annotated[float, FieldMetadata(alias="inCardChargeBackVolume")] = (
        pydantic.Field()
    )
    """
    Inbound Card chargebacks and returns volume.
    """

    in_ach_returns_volume: typing_extensions.Annotated[float, FieldMetadata(alias="inACHReturnsVolume")] = (
        pydantic.Field()
    )
    """
    Inbound ACH returns volume.
    """

    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
