jarvis-core/jarvis_core/db/models/actions.py
2023-03-23 21:56:54 -06:00

73 lines
1.4 KiB
Python

"""User action models."""
from datetime import datetime, timezone
from functools import partial
from typing import Optional
from beanie import Document, Field
def get_now() -> datetime:
"""Get proper timestamp."""
return datetime.now(tz=timezone.utc)
NowField = partial(Field, default_factory=get_now)
class Ban(Document):
active: bool = True
admin: int
user: int
username: str
discrim: int
duration: Optional[int]
guild: int
type: str = "perm"
reason: str
created_at: datetime = NowField()
class Kick(Document):
"""Kick database object."""
admin: int
guild: int
reason: str
user: int
created_at: datetime = NowField()
class Mute(Document):
"""Mute database object."""
active: bool = True
user: int
admin: int
duration: int = 10
guild: int
reason: str
created_at: datetime = NowField()
class Unban(Document):
"""Unban database object."""
user: int
username: str
discrim: str
guild: int
reason: str
created_at: datetime = NowField()
class Warning(Document):
"""Warning database object."""
active: bool = True
admin: int
user: int
guild: int
duration: int = 24
reason: str
expires_at: datetime
created_at: datetime = NowField()