# generated by datamodel-codegen:
#   filename:  advanced_constructs.xsd
#   timestamp: 2019-07-26T00:00:00+00:00

from __future__ import annotations

from typing import TypedDict

from typing_extensions import NotRequired


class Animal(TypedDict):
    id: str


class Paragraph(TypedDict):
    emphasis: NotRequired[list[str]]
    lang: NotRequired[str]
    value: NotRequired[str]


class Vehicle(TypedDict):
    vin: str


class Car(Vehicle):
    doors: int


class Cat(Animal):
    lives: int


class Dog(Animal):
    breed: str


class Zoo(TypedDict):
    animal: list[Cat | Dog]
    vehicle: NotRequired[Vehicle | Car]
    description: NotRequired[Paragraph]


class Model(TypedDict):
    vehicle: Vehicle
    zoo: Zoo
