36 lines
821 B
Python
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
|