from beanie import Document from pydantic import EmailStr, Field from datetime import datetime from typing import Optional class User(Document): username: str = Field(..., unique=True) email: EmailStr full_name: Optional[str] = None created_at: datetime = Field(default_factory=datetime.now) updated_at: datetime = Field(default_factory=datetime.now) class Settings: collection = "users" class Config: json_schema_extra = { "example": { "username": "john_doe", "email": "john@example.com", "full_name": "John Doe" } }