from __future__ import annotations
import collections.abc
import typing
from jsoncompat.codegen import dataclasses as dc
if __package__:
from ._models_generated import bind_models as _jsoncompat_bind
else:
from _models_generated import bind_models as _jsoncompat_bind
@typing.final
class Order(dc.DataclassModel):
customer: Customer = dc.field("customer")
id: str = dc.field("id")
items: collections.abc.Sequence[OrderItem] = dc.field("items")
note: dc.Omittable[str | None] = dc.field("note", default=dc.JSONCOMPAT_MISSING)
status: (typing.Literal["paid"] | typing.Literal["pending"]) = dc.field("status")
__slots__ = ("customer", "id", "items", "note", "status",)
@typing.final
class Customer(dc.DataclassModel):
email: str = dc.field("email")
name: str = dc.field("name")
__slots__ = ("email", "name",)
@typing.final
class OrderItem(dc.DataclassModel):
quantity: int = dc.field("quantity")
sku: str = dc.field("sku")
unitPriceCents: int = dc.field("unitPriceCents")
__slots__ = ("quantity", "sku", "unitPriceCents",)
JSONCOMPAT_MODEL = Order
__all__ = ("Order", "Customer", "OrderItem", "JSONCOMPAT_MODEL",)
_jsoncompat_bind((Order, Customer, OrderItem,), globals())
del _jsoncompat_bind