from typing import Optional from beanie import Document, Link, Indexed from pydantic import EmailStr, Field class UserProfile(Document): full_name: str age: Optional[int] = None bio: Optional[str] = None class User(Document): username: str = Field(..., unique=True) email: EmailStr = Field(..., unique=True) password: str is_active: bool = True profile: Optional[Link[UserProfile]] = None class Settings: name = "users"