jarvis-core/jarvis_core/db/models/modlog.py

36 lines
876 B
Python

"""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()