"""Modlog database models.""" from datetime import datetime from beanie import PydanticObjectId from pydantic import BaseModel, Field from jarvis_core.db.utils import NanoField, NowField, Snowflake, SnowflakeDocument class Action(BaseModel): """Modlog embedded action document.""" action_type: str parent: PydanticObjectId orphaned: bool = False class Note(BaseModel): """Modlog embedded note document.""" admin: Snowflake content: str created_at: datetime = NowField() class Modlog(SnowflakeDocument): """Modlog database object.""" user: Snowflake nanoid: str = NanoField() guild: Snowflake admin: Snowflake actions: list[Action] = Field(default_factory=list) notes: list[Note] = Field(default_factory=list) open: bool = True created_at: datetime = NowField()