forked from HoloTech/subathon-tracker-bot
83 lines
1.9 KiB
Python
83 lines
1.9 KiB
Python
from data import Registry, RowModel, Table
|
|
from data.columns import String, Timestamp, Integer, Bool
|
|
|
|
|
|
class UserAuth(RowModel):
|
|
"""
|
|
Schema
|
|
======
|
|
CREATE TABLE user_auth(
|
|
userid TEXT PRIMARY KEY,
|
|
token TEXT NOT NULL,
|
|
refresh_token TEXT NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
_timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
"""
|
|
_tablename_ = 'user_auth'
|
|
_cache_ = {}
|
|
|
|
userid = String(primary=True)
|
|
token = String()
|
|
refresh_token = String()
|
|
created_at = Timestamp()
|
|
_timestamp = Timestamp()
|
|
|
|
|
|
class BotChannel(RowModel):
|
|
"""
|
|
Schema
|
|
======
|
|
CREATE TABLE bot_channels(
|
|
userid TEXT PRIMARY KEY REFERENCES user_auth(userid) ON DELETE CASCADE,
|
|
autojoin BOOLEAN DEFAULT true,
|
|
listen_redeems BOOLEAN,
|
|
joined_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
_timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
"""
|
|
_tablename_ = 'bot_channels'
|
|
_cache_ = {}
|
|
|
|
userid = String(primary=True)
|
|
autojoin = Bool()
|
|
listen_redeems = Bool()
|
|
joined_at = Timestamp()
|
|
_timestamp = Timestamp()
|
|
|
|
|
|
class VersionHistory(RowModel):
|
|
"""
|
|
CREATE TABLE version_history(
|
|
component TEXT NOT NULL,
|
|
from_version INTEGER NOT NULL,
|
|
to_version INTEGER NOT NULL,
|
|
author TEXT NOT NULL,
|
|
_timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
);
|
|
"""
|
|
_tablename_ = 'version_history'
|
|
_cache_ = {}
|
|
|
|
component = String()
|
|
from_version = Integer()
|
|
to_version = Integer()
|
|
author = String()
|
|
_timestamp = Timestamp()
|
|
|
|
|
|
class BotData(Registry):
|
|
version_history = VersionHistory.table
|
|
|
|
user_auth = UserAuth.table
|
|
bot_channels = BotChannel.table
|
|
|
|
"""
|
|
CREATE TABLE user_auth_scopes(
|
|
userid TEXT NOT NULL REFERENCES user_auth(userid) ON DELETE CASCADE,
|
|
scope TEXT NOT NULL
|
|
);
|
|
"""
|
|
user_auth_scopes = Table('user_auth_scopes')
|
|
|