feat (tasklist): Add nowlist and plan tables.

This commit is contained in:
2024-12-03 08:19:44 +10:00
parent 49a8cefeef
commit 592017ba5e
5 changed files with 48 additions and 7 deletions

View File

@@ -318,6 +318,20 @@ CREATE TABLE tasklist_reward_history(
reward_count INTEGER
);
CREATE INDEX tasklist_reward_history_users ON tasklist_reward_history (userid, reward_time);
CREATE TABLE tasklist_current(
taskid INTEGER PRIMARY KEY REFERENCES tasklist (taskid) ON DELETE CASCADE ON UPDATE CASCADE,
started_at TIMESTAMPTZ NOT NULL
);
CREATE TABLE tasklist_planner(
taskid INTEGER PRIMARY KEY REFERENCES tasklist (taskid) ON DELETE CASCADE ON UPDATE CASCADE,
sortkey INTEGER
);
-- }}}
-- Reminder data {{{

Submodule src/gui updated: 40bc140355...62d2484914

View File

@@ -7,6 +7,7 @@ from discord.ext import commands as cmds
from discord import app_commands as appcmds
from discord.app_commands.transformers import AppCommandOptionType as cmdopt
from data.queries import JOINTYPE
from meta import LionBot, LionCog, LionContext
from meta.logger import log_wrap
from meta.errors import UserInputError

View File

@@ -5,6 +5,7 @@ from data.columns import Integer, String, Timestamp, Bool
class TasklistData(Registry):
class Task(RowModel):
"""
Row model describing a single task in a tasklist.
@@ -25,12 +26,6 @@ class TasklistData(Registry):
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"
@@ -45,4 +40,24 @@ class TasklistData(Registry):
last_updated_at = Timestamp()
duration = Integer()
"""
Schema
------
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);
"""
channels = Table('tasklist_channels')
"""
Schema
------
CREATE TABLE current_tasks(
taskid PRIMARY KEY REFERENCES tasklist (taskid) ON DELETE CASCADE ON UPDATE CASCADE,
last_started_at TIMESTAMPTZ NOT NULL
);
"""
current_tasks = Table('current_tasks')

View File

@@ -10,3 +10,14 @@ ALTER TABLE tasklist
NOT VALID;
ALTER TABLE tasklist
ADD COLUMN duration INTEGER;
CREATE TABLE tasklist_current(
taskid INTEGER PRIMARY KEY REFERENCES tasklist (taskid) ON DELETE CASCADE ON UPDATE CASCADE,
started_at TIMESTAMPTZ NOT NULL
);
CREATE TABLE tasklist_planner(
taskid INTEGER PRIMARY KEY REFERENCES tasklist (taskid) ON DELETE CASCADE ON UPDATE CASCADE,
sortkey INTEGER
);