# 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 VendorResponseSummary(UniversalBaseModel):
    """
    Vendor bill summary statistics
    """

    active_bills: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="ActiveBills")] = None
    pending_bills: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="PendingBills")] = None
    in_transit_bills: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="InTransitBills")] = None
    paid_bills: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="PaidBills")] = None
    overdue_bills: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="OverdueBills")] = None
    approved_bills: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="ApprovedBills")] = None
    disapproved_bills: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="DisapprovedBills")] = None
    total_bills: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="TotalBills")] = None
    active_bills_amount: typing_extensions.Annotated[
        typing.Optional[float], FieldMetadata(alias="ActiveBillsAmount")
    ] = None
    pending_bills_amount: typing_extensions.Annotated[
        typing.Optional[float], FieldMetadata(alias="PendingBillsAmount")
    ] = None
    in_transit_bills_amount: typing_extensions.Annotated[
        typing.Optional[float], FieldMetadata(alias="InTransitBillsAmount")
    ] = None
    paid_bills_amount: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="PaidBillsAmount")] = (
        None
    )
    overdue_bills_amount: typing_extensions.Annotated[
        typing.Optional[float], FieldMetadata(alias="OverdueBillsAmount")
    ] = None
    approved_bills_amount: typing_extensions.Annotated[
        typing.Optional[float], FieldMetadata(alias="ApprovedBillsAmount")
    ] = None
    disapproved_bills_amount: typing_extensions.Annotated[
        typing.Optional[float], FieldMetadata(alias="DisapprovedBillsAmount")
    ] = None
    total_bills_amount: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="TotalBillsAmount")] = (
        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
