"""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()