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

36 lines
821 B
Python

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