foxnouns/foxnouns/models/user.py

45 lines
815 B
Python

from pydantic import Field
from . import BaseSnowflakeModel
class BaseUserModel(BaseSnowflakeModel):
name: str = Field(alias="username")
display_name: str | None
bio: str | None
class UserModel(BaseUserModel):
members: list["BaseMemberModel"] = Field(default=[])
class BaseMemberModel(BaseSnowflakeModel):
name: str
display_name: str | None
bio: str | None
class SelfUserModel(UserModel):
pass
def check_username(value):
if not value:
return value
if value.lower() in (
"..",
"admin",
"administrator",
"mod",
"moderator",
"api",
"page",
"pronouns",
"settings",
"pronouns.cc",
"pronounscc",
):
raise ValueError("Username is not allowed")
return value