Refactor to apps/ structure
JIGAIDO is now a platform with apps/ as the container. All telegram-bot files moved to apps/telegram-bot/: - bot.py, commands.py, cron.py, db.py, schema.sql - requirements.txt, .env.example, README.md - Root now holds SPEC.md, README.md, CONTRIBUTING.md only. Structure: jigaido/ ├── apps/ │ └── telegram-bot/ └── SPEC.md, README.md, CONTRIBUTING.md
This commit is contained in:
49
apps/telegram-bot/schema.sql
Normal file
49
apps/telegram-bot/schema.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
-- JIGAIDO Database Schema
|
||||
|
||||
CREATE TABLE IF NOT EXISTS groups (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
telegram_chat_id INTEGER UNIQUE NOT NULL,
|
||||
creator_user_id INTEGER NOT NULL,
|
||||
created_at INTEGER NOT NULL DEFAULT (unixepoch())
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS group_admins (
|
||||
group_id INTEGER REFERENCES groups(id) ON DELETE CASCADE,
|
||||
user_id INTEGER NOT NULL,
|
||||
PRIMARY KEY (group_id, user_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
telegram_user_id INTEGER UNIQUE NOT NULL,
|
||||
username TEXT,
|
||||
created_at INTEGER NOT NULL DEFAULT (unixepoch())
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS bounties (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
group_id INTEGER REFERENCES groups(id) ON DELETE CASCADE,
|
||||
created_by_user_id INTEGER REFERENCES users(id),
|
||||
informed_by_username TEXT NOT NULL,
|
||||
text TEXT,
|
||||
link TEXT,
|
||||
due_date_ts INTEGER,
|
||||
created_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
||||
UNIQUE(group_id, link)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS user_bounty_tracking (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
bounty_id INTEGER NOT NULL REFERENCES bounties(id) ON DELETE CASCADE,
|
||||
added_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
||||
UNIQUE(user_id, bounty_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS reminder_log (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
bounty_id INTEGER NOT NULL REFERENCES bounties(id) ON DELETE CASCADE,
|
||||
reminded_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
||||
UNIQUE(user_id, bounty_id)
|
||||
);
|
||||
Reference in New Issue
Block a user