2021-02-26 12:35:57 +01:00
|
|
|
CREATE TABLE Information (
|
2022-02-02 08:04:59 +01:00
|
|
|
inf_key VARCHAR(128) NOT NULL UNIQUE CHECK (inf_key != ''), /* Use VARCHAR as MariaDB 10.3 does no support UNIQUE TEXT columns. */
|
2021-02-26 12:35:57 +01:00
|
|
|
inf_value TEXT
|
2017-03-13 07:12:38 +01:00
|
|
|
);
|
|
|
|
-- !
|
2021-02-26 12:35:57 +01:00
|
|
|
CREATE TABLE Accounts (
|
2021-03-05 21:13:40 +01:00
|
|
|
id $$,
|
2022-03-14 09:24:30 +01:00
|
|
|
ordr INTEGER NOT NULL CHECK (ordr >= 0),
|
2021-02-26 12:35:57 +01:00
|
|
|
type TEXT NOT NULL CHECK (type != ''), /* ID of the account type. Each account defines its own, for example 'ttrss'. */
|
|
|
|
proxy_type INTEGER NOT NULL DEFAULT 0 CHECK (proxy_type >= 0),
|
2021-01-21 08:24:32 +01:00
|
|
|
proxy_host TEXT,
|
|
|
|
proxy_port INTEGER,
|
|
|
|
proxy_username TEXT,
|
2021-02-26 12:35:57 +01:00
|
|
|
proxy_password TEXT,
|
2021-02-28 19:44:02 +01:00
|
|
|
/* Custom column for (serialized) custom account-specific data. */
|
2021-03-03 14:50:31 +01:00
|
|
|
custom_data TEXT
|
2017-09-22 11:23:19 +02:00
|
|
|
);
|
|
|
|
-- !
|
2021-02-26 12:35:57 +01:00
|
|
|
CREATE TABLE Categories (
|
2021-03-05 21:13:40 +01:00
|
|
|
id $$,
|
2022-03-14 09:24:30 +01:00
|
|
|
ordr INTEGER NOT NULL CHECK (ordr >= 0),
|
2021-02-26 12:35:57 +01:00
|
|
|
parent_id INTEGER NOT NULL CHECK (parent_id >= -1), /* Root categories contain -1 here. */
|
2017-03-13 07:12:38 +01:00
|
|
|
title TEXT NOT NULL CHECK (title != ''),
|
|
|
|
description TEXT,
|
2021-03-15 13:49:53 +01:00
|
|
|
date_created BIGINT,
|
2022-01-09 08:51:58 +01:00
|
|
|
icon ^^,
|
2017-03-13 07:12:38 +01:00
|
|
|
account_id INTEGER NOT NULL,
|
|
|
|
custom_id TEXT,
|
|
|
|
|
2021-03-01 20:09:56 +01:00
|
|
|
FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE
|
2017-03-13 07:12:38 +01:00
|
|
|
);
|
|
|
|
-- !
|
2021-02-26 12:35:57 +01:00
|
|
|
CREATE TABLE Feeds (
|
2023-07-26 09:09:42 +02:00
|
|
|
id $$,
|
|
|
|
ordr INTEGER NOT NULL CHECK (ordr >= 0),
|
|
|
|
title TEXT NOT NULL CHECK (title != ''),
|
|
|
|
description TEXT,
|
|
|
|
date_created BIGINT,
|
|
|
|
icon ^^,
|
|
|
|
category INTEGER NOT NULL CHECK (category >= -1), /* Physical category ID, also root feeds contain -1 here. */
|
|
|
|
source TEXT,
|
|
|
|
update_type INTEGER NOT NULL CHECK (update_type >= 0),
|
|
|
|
update_interval INTEGER NOT NULL DEFAULT 900 CHECK (update_interval >= 1),
|
|
|
|
is_off INTEGER NOT NULL DEFAULT 0 CHECK (is_off >= 0 AND is_off <= 1),
|
|
|
|
is_quiet INTEGER NOT NULL DEFAULT 0 CHECK (is_quiet >= 0 AND is_quiet <= 1),
|
|
|
|
is_rtl INTEGER NOT NULL DEFAULT 0 CHECK (is_rtl >= 0 AND is_rtl <= 1),
|
2024-01-12 13:11:40 +01:00
|
|
|
|
2023-08-22 10:28:43 +02:00
|
|
|
add_any_datetime_articles INTEGER NOT NULL DEFAULT 0 CHECK (add_any_datetime_articles >= 0 AND add_any_datetime_articles <= 1),
|
2023-07-26 09:09:42 +02:00
|
|
|
datetime_to_avoid BIGINT NOT NULL DEFAULT 0 CHECK (datetime_to_avoid >= 0),
|
2024-01-12 13:11:40 +01:00
|
|
|
|
2024-01-15 14:51:39 +01:00
|
|
|
keep_article_customize INTEGER NOT NULL DEFAULT 0 CHECK (keep_article_customize >= 0 AND keep_article_customize <= 1),
|
2024-01-12 13:11:40 +01:00
|
|
|
keep_article_count INTEGER NOT NULL DEFAULT 0 CHECK (keep_article_count >= 0),
|
|
|
|
keep_unread_articles INTEGER NOT NULL DEFAULT 1 CHECK (keep_unread_articles >= 0 AND keep_unread_articles <= 1),
|
|
|
|
keep_starred_articles INTEGER NOT NULL DEFAULT 1 CHECK (keep_starred_articles >= 0 AND keep_starred_articles <= 1),
|
|
|
|
recycle_articles INTEGER NOT NULL DEFAULT 0 CHECK (recycle_articles >= 0 AND recycle_articles <= 1),
|
|
|
|
|
2023-07-26 09:09:42 +02:00
|
|
|
open_articles INTEGER NOT NULL DEFAULT 0 CHECK (open_articles >= 0 AND open_articles <= 1),
|
|
|
|
account_id INTEGER NOT NULL,
|
|
|
|
custom_id TEXT NOT NULL CHECK (custom_id != ''), /* Custom ID cannot be empty, it must contain either service-specific ID, or Feeds/id. */
|
2021-03-02 12:02:07 +01:00
|
|
|
/* Custom column for (serialized) custom account-specific data. */
|
|
|
|
custom_data TEXT,
|
2017-03-13 07:12:38 +01:00
|
|
|
|
2021-03-01 20:09:56 +01:00
|
|
|
FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE
|
2017-03-13 07:12:38 +01:00
|
|
|
);
|
|
|
|
-- !
|
2021-02-26 12:35:57 +01:00
|
|
|
CREATE TABLE Messages (
|
2021-03-05 21:13:40 +01:00
|
|
|
id $$,
|
2021-03-15 20:16:24 +01:00
|
|
|
is_read INTEGER NOT NULL DEFAULT 0 CHECK (is_read >= 0 AND is_read <= 1),
|
|
|
|
is_important INTEGER NOT NULL DEFAULT 0 CHECK (is_important >= 0 AND is_important <= 1),
|
|
|
|
is_deleted INTEGER NOT NULL DEFAULT 0 CHECK (is_deleted >= 0 AND is_deleted <= 1),
|
|
|
|
is_pdeleted INTEGER NOT NULL DEFAULT 0 CHECK (is_pdeleted >= 0 AND is_pdeleted <= 1),
|
2021-03-02 14:30:13 +01:00
|
|
|
feed TEXT NOT NULL, /* Points to Feeds/custom_id. */
|
2017-03-13 07:12:38 +01:00
|
|
|
title TEXT NOT NULL CHECK (title != ''),
|
|
|
|
url TEXT,
|
|
|
|
author TEXT,
|
2021-03-15 13:49:53 +01:00
|
|
|
date_created BIGINT NOT NULL CHECK (date_created >= 0),
|
2017-03-13 07:12:38 +01:00
|
|
|
contents TEXT,
|
|
|
|
enclosures TEXT,
|
2021-03-03 14:50:31 +01:00
|
|
|
score REAL NOT NULL DEFAULT 0.0 CHECK (score >= 0.0 AND score <= 100.0),
|
2017-03-13 07:12:38 +01:00
|
|
|
account_id INTEGER NOT NULL,
|
|
|
|
custom_id TEXT,
|
|
|
|
custom_hash TEXT,
|
2023-06-02 14:08:24 +02:00
|
|
|
labels TEXT NOT NULL DEFAULT ".", /* Holds list of assigned label IDs. */
|
2017-03-13 07:12:38 +01:00
|
|
|
|
2021-03-01 20:09:56 +01:00
|
|
|
FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE
|
2020-06-22 10:57:36 +02:00
|
|
|
);
|
|
|
|
-- !
|
2021-02-26 12:35:57 +01:00
|
|
|
CREATE TABLE MessageFilters (
|
2021-03-05 21:13:40 +01:00
|
|
|
id $$,
|
2020-06-22 10:57:36 +02:00
|
|
|
name TEXT NOT NULL CHECK (name != ''),
|
|
|
|
script TEXT NOT NULL CHECK (script != '')
|
|
|
|
);
|
|
|
|
-- !
|
2021-02-26 12:35:57 +01:00
|
|
|
CREATE TABLE MessageFiltersInFeeds (
|
2020-06-22 10:57:36 +02:00
|
|
|
filter INTEGER NOT NULL,
|
2021-03-02 12:02:07 +01:00
|
|
|
feed_custom_id TEXT NOT NULL, /* Points to Feeds/custom_id. */
|
2020-06-22 10:57:36 +02:00
|
|
|
account_id INTEGER NOT NULL,
|
|
|
|
|
|
|
|
FOREIGN KEY (filter) REFERENCES MessageFilters (id) ON DELETE CASCADE,
|
2020-08-13 19:59:05 +02:00
|
|
|
FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE
|
|
|
|
);
|
|
|
|
-- !
|
2021-02-26 12:35:57 +01:00
|
|
|
CREATE TABLE Labels (
|
2021-03-05 21:13:40 +01:00
|
|
|
id $$,
|
2020-08-13 19:59:05 +02:00
|
|
|
name TEXT NOT NULL CHECK (name != ''),
|
|
|
|
color VARCHAR(7),
|
|
|
|
custom_id TEXT,
|
|
|
|
account_id INTEGER NOT NULL,
|
|
|
|
|
2021-03-01 20:09:56 +01:00
|
|
|
FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE
|
2023-07-22 16:00:18 +01:00
|
|
|
);
|
2023-08-04 14:11:31 +02:00
|
|
|
-- !
|
|
|
|
CREATE TABLE Probes (
|
|
|
|
id $$,
|
|
|
|
name TEXT NOT NULL CHECK (name != ''),
|
|
|
|
color VARCHAR(7) NOT NULL CHECK (color != ''),
|
2023-08-06 07:52:09 +02:00
|
|
|
fltr TEXT NOT NULL CHECK (fltr != ''), /* Regular expression. */
|
2023-08-04 14:11:31 +02:00
|
|
|
account_id INTEGER NOT NULL,
|
|
|
|
|
|
|
|
FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE
|
|
|
|
);
|