Source code for pylav.storage.database.tables.player_state
from __future__ import annotations
from piccolo.columns import JSONB, UUID, BigInt, Boolean, Float, Integer
from piccolo.table import Table
from pylav.constants.config import DEFAULT_PLAYER_VOLUME
from pylav.storage.database.tables.misc import DATABASE_ENGINE
[docs]
class PlayerStateRow(Table, db=DATABASE_ENGINE, tablename="player_state"):
primary_key = UUID(primary_key=True)
id = BigInt(index=True, null=False)
bot = BigInt(index=True, null=False)
channel_id = BigInt(null=True, default=None)
volume = Integer(null=False, default=DEFAULT_PLAYER_VOLUME)
position = Float(null=False, default=0.0)
auto_play_playlist_id = BigInt(null=True, default=1)
forced_channel_id = BigInt(null=True, default=0)
text_channel_id = BigInt(null=True, default=0)
notify_channel_id = BigInt(null=True, default=0)
paused = Boolean(null=False, default=False)
repeat_current = Boolean(null=False, default=False)
repeat_queue = Boolean(null=False, default=False)
shuffle = Boolean(null=False, default=True)
auto_shuffle = Boolean(null=False, default=False)
auto_play = Boolean(null=False, default=False)
playing = Boolean(null=False, default=False)
effect_enabled = Boolean(null=False, default=False)
self_deaf = Boolean(null=False, default=False)
current = JSONB(null=True, default={})
queue = JSONB(null=False, default=[])
history = JSONB(null=False, default=[])
effects = JSONB(null=False, default={})
extras = JSONB(null=False, default={})