from pydantic import BaseModel, Field, EmailStr from typing import Optional from datetime import datetime import uuid class PersonBase(BaseModel): name: str = Field(..., description="Person's name") email: EmailStr = Field(..., description="Person's email address") phone_number: Optional[str] = Field(None, description="Person's phone number") class PersonCreate(PersonBase): pass class PersonUpdate(PersonBase): name: Optional[str] = Field(None, description="Person's name") email: Optional[EmailStr] = Field(None, description="Person's email address") phone_number: Optional[str] = Field(None, description="Person's phone number") class PersonSchema(PersonBase): id: uuid.UUID created_at: datetime updated_at: datetime class Config: orm_mode = True