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

from __future__ import annotations
from .invoicecategorysummary import (
    InvoiceCategorySummary,
    InvoiceCategorySummaryTypedDict,
)
from paygentic_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class GroupInvoiceSummaryTypedDict(TypedDict):
    group_key: str
    r"""Unique identifier for the group (e.g. plan ID, or 'other')"""
    group_label: str
    r"""Human-readable label for the group (e.g. plan name)"""
    outstanding: InvoiceCategorySummaryTypedDict
    paid: InvoiceCategorySummaryTypedDict
    written_off: InvoiceCategorySummaryTypedDict


class GroupInvoiceSummary(BaseModel):
    group_key: Annotated[str, pydantic.Field(alias="groupKey")]
    r"""Unique identifier for the group (e.g. plan ID, or 'other')"""

    group_label: Annotated[str, pydantic.Field(alias="groupLabel")]
    r"""Human-readable label for the group (e.g. plan name)"""

    outstanding: InvoiceCategorySummary

    paid: InvoiceCategorySummary

    written_off: Annotated[InvoiceCategorySummary, pydantic.Field(alias="writtenOff")]


try:
    GroupInvoiceSummary.model_rebuild()
except NameError:
    pass
