72 lines
2.6 KiB
Python
72 lines
2.6 KiB
Python
"""User action models."""
|
|
from datetime import datetime, timezone
|
|
|
|
from umongo import Document, fields
|
|
|
|
from jarvis_core.db import JARVIS_INST
|
|
from jarvis_core.db.utils import get_now
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class Ban(Document):
|
|
active: bool = fields.BooleanField(default=True)
|
|
admin: int = fields.IntegerField(required=True)
|
|
user: int = fields.IntegerField(required=True)
|
|
username: str = fields.StringField(required=True)
|
|
discrim: int = fields.IntegerField(required=True)
|
|
duration: int = fields.IntegerField(required=False, default=None)
|
|
guild: int = fields.IntegerField(required=True)
|
|
type: str = fields.StringField(default="perm")
|
|
reason: str = fields.StringField(required=True)
|
|
created_at: datetime = fields.AwareDateTimeField(default=get_now)
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class Kick(Document):
|
|
"""Kick database object."""
|
|
|
|
admin: int = fields.IntegerField(required=True)
|
|
guild: int = fields.IntegerField(required=True)
|
|
reason: str = fields.StringField(required=True)
|
|
user: int = fields.IntegerField(required=True)
|
|
created_at: datetime = fields.AwareDateTimeField(default=get_now)
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class Mute(Document):
|
|
"""Mute database object."""
|
|
|
|
active: bool = fields.BooleanField(default=True)
|
|
user: int = fields.IntegerField(required=True)
|
|
admin: int = fields.IntegerField(required=True)
|
|
duration: int = fields.IntegerField(default=10)
|
|
guild: int = fields.IntegerField(required=True)
|
|
reason: str = fields.StringField(required=True)
|
|
created_at: datetime = fields.AwareDateTimeField(default=get_now)
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class Unban(Document):
|
|
"""Unban database object."""
|
|
|
|
user: int = fields.IntegerField(required=True)
|
|
username: str = fields.StringField(required=True)
|
|
discrim: int = fields.IntegerField(required=True)
|
|
guild: int = fields.IntegerField(required=True)
|
|
admin: int = fields.IntegerField(required=True)
|
|
reason: str = fields.StringField(required=True)
|
|
created_at: datetime = fields.AwareDateTimeField(default=get_now)
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class Warning(Document):
|
|
"""Warning database object."""
|
|
|
|
active: bool = fields.BooleanField(default=True)
|
|
admin: int = fields.IntegerField(required=True)
|
|
user: int = fields.IntegerField(required=True)
|
|
guild: int = fields.IntegerField(required=True)
|
|
duration: int = fields.IntegerField(default=24)
|
|
reason: str = fields.StringField(required=True)
|
|
expires_at: datetime = fields.AwareDateTimeField(required=True)
|
|
created_at: datetime = fields.AwareDateTimeField(default=get_now)
|