37 lines
1.1 KiB
Python

from pydantic import BaseModel, Field
from typing import Optional
from datetime import datetime
import uuid
import enum
class Continent(enum.Enum):
AFRICA = "Africa"
ANTARCTICA = "Antarctica"
ASIA = "Asia"
EUROPE = "Europe"
NORTH_AMERICA = "North America"
OCEANIA = "Oceania"
SOUTH_AMERICA = "South America"
class CountryBase(BaseModel):
name: str = Field(..., description="Country name")
latitude: float = Field(..., description="Country latitude")
longitude: float = Field(..., description="Country longitude")
continent: Continent = Field(..., description="Country continent")
class CountryCreate(CountryBase):
pass
class CountryUpdate(CountryBase):
name: Optional[str] = Field(None, description="Country name")
latitude: Optional[float] = Field(None, description="Country latitude")
longitude: Optional[float] = Field(None, description="Country longitude")
continent: Optional[Continent] = Field(None, description="Country continent")
class CountrySchema(CountryBase):
id: uuid.UUID
created_at: datetime
updated_at: datetime
class Config:
orm_mode = True