64 lines
1.3 KiB
Python
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()
|