from pydantic import BaseModel, Field, EmailStr from typing import Optional from datetime import datetime import uuid class ContactBase(BaseModel): name: str = Field(..., description="Contact's name") email: EmailStr = Field(..., description="Contact's email address") message: str = Field(..., description="Contact's message") class ContactCreate(ContactBase): pass class ContactUpdate(ContactBase): name: Optional[str] = Field(None, description="Contact's name") email: Optional[EmailStr] = Field(None, description="Contact's email address") message: Optional[str] = Field(None, description="Contact's message") class ContactSchema(BaseModel): id: uuid.UUID name: str email: EmailStr message: str created_at: datetime updated_at: datetime class Config: orm_mode = True