# generated by datamodel-codegen:
#   filename:  _internal
#   timestamp: 2019-07-26T00:00:00+00:00

from __future__ import annotations

from typing import List, Optional, Union

from pydantic import BaseModel, Field, conint

from .definitions import food as food_1
from .definitions import friends as friends_1
from .definitions.drink import coffee, tea
from .definitions.relative.animal.pet import pet as pet_1
from .definitions.relative.animal.pet.pet import Pet


class Robot(Pet):
    friends: Optional[Person] = None
    drink: Optional[coffee.Coffee] = None
    food: Optional[food_1.Noodle] = None
    pet: Optional[pet_1.Pet] = None


class Person(BaseModel):
    first_name: str = Field(..., description="The person's first name.")
    last_name: str = Field(..., description="The person's last name.")
    age: Optional[conint(ge=0)] = Field(None, description='Age in years.')
    pets: Optional[List[pet_1.Pet]] = None
    friends: Optional[friends_1.Friends] = None
    robot: Optional[Robot] = None
    comment: None = None
    drink: Optional[List[Union[coffee.Coffee, tea.Tea]]] = None
    food: Optional[List[Union[food_1.Noodle, food_1.Soup]]] = None


Person.update_forward_refs()
