import uuid from datetime import datetime from pydantic import BaseModel, ConfigDict # Note: email is a plain str for now (no email-validator dependency yet); the # auth slice can tighten this to EmailStr. class UserCreate(BaseModel): email: str display_name: str | None = None class UserRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID email: str display_name: str | None email_verified_at: datetime | None self_person_id: uuid.UUID | None = None created_at: datetime # Operational role, not a DB column: true when this account's email is named # in OWNER_EMAIL. Set by the API layer (see users.read_me). is_instance_owner: bool = False class UserSelfPersonUpdate(BaseModel): # null clears the link; otherwise the Person that represents this account. self_person_id: uuid.UUID | None = None