import uuid from datetime import datetime from pydantic import BaseModel, ConfigDict, EmailStr class MemberBase(BaseModel): email: EmailStr display_name: str class MemberRead(MemberBase): model_config = ConfigDict(from_attributes=True) id: uuid.UUID avatar_url: str | None = None nc_username: str | None = None nc_url: str | None = None nc_configured: bool = False # True if nc_url + nc_username + nc_password are all set created_at: datetime @classmethod def from_model(cls, m: object) -> "MemberRead": obj = cls.model_validate(m) obj.nc_configured = bool( m.nc_url and m.nc_username and m.nc_password ) return obj class MemberSettingsUpdate(BaseModel): display_name: str | None = None nc_url: str | None = None nc_username: str | None = None nc_password: str | None = None # send null to clear, omit to leave unchanged avatar_url: str | None = None # URL to user's avatar image