jsoncompat 0.5.0

JSON Schema and OpenAPI Compatibility Checker
Documentation
# Generated by jsoncompat. Edit the schema and regenerate this module.
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