rewrite: Tasklist module.
This commit is contained in:
45
bot/modules/tasklist/data.py
Normal file
45
bot/modules/tasklist/data.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from psycopg import sql
|
||||
|
||||
from data import RowModel, Registry, Table
|
||||
from data.columns import Integer, String, Timestamp, Bool
|
||||
|
||||
|
||||
class TasklistData(Registry):
|
||||
class Task(RowModel):
|
||||
"""
|
||||
Row model describing a single task in a tasklist.
|
||||
|
||||
Schema
|
||||
------
|
||||
CREATE TABLE tasklist(
|
||||
taskid SERIAL PRIMARY KEY,
|
||||
userid BIGINT NOT NULL REFERENCES user_config ON DELETE CASCADE,
|
||||
parentid INTEGER REFERENCES tasklist (taskid) ON DELETE SET NULL,
|
||||
content TEXT NOT NULL,
|
||||
rewarded BOOL DEFAULT FALSE,
|
||||
deleted_at TIMESTAMPTZ,
|
||||
completed_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ,
|
||||
last_updated_at TIMESTAMPTZ
|
||||
);
|
||||
CREATE INDEX tasklist_users ON tasklist (userid);
|
||||
|
||||
CREATE TABLE tasklist_channels(
|
||||
guildid BIGINT NOT NULL REFERENCES guild_config (guildid) ON DELETE CASCADE,
|
||||
channelid BIGINT NOT NULL
|
||||
);
|
||||
CREATE INDEX tasklist_channels_guilds ON tasklist_channels (guildid);
|
||||
"""
|
||||
_tablename_ = "tasklist"
|
||||
|
||||
taskid = Integer(primary=True)
|
||||
userid = Integer()
|
||||
parentid = Integer()
|
||||
rewarded = Bool()
|
||||
content = String()
|
||||
completed_at = Timestamp()
|
||||
created_at = Timestamp()
|
||||
deleted_at = Timestamp()
|
||||
last_updated_at = Timestamp()
|
||||
|
||||
channels = Table('tasklist_channels')
|
||||
Reference in New Issue
Block a user