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

64 lines
1.3 KiB
Python

"""User action models."""
from datetime import datetime
from typing import Optional
from jarvis_core.db.utils import NowField, Snowflake, SnowflakeDocument
class Ban(SnowflakeDocument):
active: bool = True
admin: Snowflake
user: Snowflake
username: str
discrim: Optional[int]
duration: Optional[int]
guild: Snowflake
type: str = "perm"
reason: str
created_at: datetime = NowField()
class Kick(SnowflakeDocument):
"""Kick database object."""
admin: Snowflake
guild: Snowflake
reason: str
user: Snowflake
created_at: datetime = NowField()
class Mute(SnowflakeDocument):
"""Mute database object."""
active: bool = True
user: Snowflake
admin: Snowflake
duration: int = 10
guild: Snowflake
reason: str
created_at: datetime = NowField()
class Unban(SnowflakeDocument):
"""Unban database object."""
user: Snowflake
username: str
discrim: Optional[str]
guild: Snowflake
reason: str
created_at: datetime = NowField()
class Warning(SnowflakeDocument):
"""Warning database object."""
active: bool = True
admin: Snowflake
user: Snowflake
guild: Snowflake
duration: int = 24
reason: str
expires_at: datetime
created_at: datetime = NowField()