# 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 VCardGetResponseAssociatedVendorSummary(UniversalBaseModel):
    """
    Summary of vendor's billing and transaction status.
    """

    active_bills: typing_extensions.Annotated[
        typing.Optional[int],
        FieldMetadata(alias="ActiveBills"),
        pydantic.Field(alias="ActiveBills", description="Number of active bills."),
    ] = None
    pending_bills: typing_extensions.Annotated[
        typing.Optional[int],
        FieldMetadata(alias="PendingBills"),
        pydantic.Field(alias="PendingBills", description="Number of bills pending approval or payment."),
    ] = None
    in_transit_bills: typing_extensions.Annotated[
        typing.Optional[int],
        FieldMetadata(alias="InTransitBills"),
        pydantic.Field(alias="InTransitBills", description="Number of bills in transit."),
    ] = None
    paid_bills: typing_extensions.Annotated[
        typing.Optional[int],
        FieldMetadata(alias="PaidBills"),
        pydantic.Field(alias="PaidBills", description="Number of bills that have been paid."),
    ] = None
    overdue_bills: typing_extensions.Annotated[
        typing.Optional[int],
        FieldMetadata(alias="OverdueBills"),
        pydantic.Field(alias="OverdueBills", description="Number of bills that are overdue."),
    ] = None
    approved_bills: typing_extensions.Annotated[
        typing.Optional[int],
        FieldMetadata(alias="ApprovedBills"),
        pydantic.Field(alias="ApprovedBills", description="Number of bills that have been approved."),
    ] = None
    disapproved_bills: typing_extensions.Annotated[
        typing.Optional[int],
        FieldMetadata(alias="DisapprovedBills"),
        pydantic.Field(alias="DisapprovedBills", description="Number of bills that have been disapproved."),
    ] = None
    total_bills: typing_extensions.Annotated[
        typing.Optional[int],
        FieldMetadata(alias="TotalBills"),
        pydantic.Field(alias="TotalBills", description="Total number of bills."),
    ] = None
    active_bills_amount: typing_extensions.Annotated[
        typing.Optional[float],
        FieldMetadata(alias="ActiveBillsAmount"),
        pydantic.Field(alias="ActiveBillsAmount", description="Total amount of active bills."),
    ] = None
    pending_bills_amount: typing_extensions.Annotated[
        typing.Optional[float],
        FieldMetadata(alias="PendingBillsAmount"),
        pydantic.Field(alias="PendingBillsAmount", description="Total amount of pending bills."),
    ] = None
    in_transit_bills_amount: typing_extensions.Annotated[
        typing.Optional[float],
        FieldMetadata(alias="InTransitBillsAmount"),
        pydantic.Field(alias="InTransitBillsAmount", description="Total amount of bills in transit."),
    ] = None
    paid_bills_amount: typing_extensions.Annotated[
        typing.Optional[float],
        FieldMetadata(alias="PaidBillsAmount"),
        pydantic.Field(alias="PaidBillsAmount", description="Total amount of paid bills."),
    ] = None
    overdue_bills_amount: typing_extensions.Annotated[
        typing.Optional[float],
        FieldMetadata(alias="OverdueBillsAmount"),
        pydantic.Field(alias="OverdueBillsAmount", description="Total amount of overdue bills."),
    ] = None
    approved_bills_amount: typing_extensions.Annotated[
        typing.Optional[float],
        FieldMetadata(alias="ApprovedBillsAmount"),
        pydantic.Field(alias="ApprovedBillsAmount", description="Total amount of approved bills."),
    ] = None
    disapproved_bills_amount: typing_extensions.Annotated[
        typing.Optional[float],
        FieldMetadata(alias="DisapprovedBillsAmount"),
        pydantic.Field(alias="DisapprovedBillsAmount", description="Total amount of rejected bills."),
    ] = None
    total_bills_amount: typing_extensions.Annotated[
        typing.Optional[float],
        FieldMetadata(alias="TotalBillsAmount"),
        pydantic.Field(alias="TotalBillsAmount", description="Total amount of all bills."),
    ] = None

    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
