from pydantic import BaseModel, Field from typing import Optional class CountryBase(BaseModel): name: str = Field(..., min_length=1, max_length=100) code: str = Field(..., min_length=2, max_length=2) currency: Optional[str] = Field(None, max_length=50) capital: Optional[str] = Field(None, max_length=100) region: Optional[str] = Field(None, max_length=100) class CountryCreate(CountryBase): class Config: schema_extra = { "example": { "name": "United States", "code": "US", "currency": "USD", "capital": "Washington, D.C.", "region": "North America" } } class Country(CountryBase): id: int class Config: orm_mode = True schema_extra = { "example": { "id": 1, "name": "United States", "code": "US", "currency": "USD", "capital": "Washington, D.C.", "region": "North America" } }