File: //usr/syno/etc/notification/filter_setting_db_v2.sql
CREATE TABLE IF NOT EXISTS `template` (
`template_id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(64) DEFAULT '',
`config` VARCHAR NOT NULL DEFAULT '{}'
);
CREATE TABLE IF NOT EXISTS `tag` (
`tag_id` INTEGER PRIMARY KEY AUTOINCREMENT,
`tag` VARCHAR
);
CREATE TABLE IF NOT EXISTS `target` (
`target_id` INTEGER PRIMARY KEY AUTOINCREMENT,
`type` VARCHAR(64) NOT NULL,
`config` VARCHAR NOT NULL DEFAULT '{}'
);
CREATE TABLE IF NOT EXISTS `template_rule` (
`template_id` INTEGER NOT NULL,
`tag_id` INTEGER NOT NULL,
`enabled` BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT `c_template_id` FOREIGN KEY (template_id) REFERENCES template(template_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `c_tag_id` FOREIGN KEY (tag_id) REFERENCES tag(tag_id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE IF NOT EXISTS `profile_v2` (
`profile_id` INTEGER PRIMARY KEY AUTOINCREMENT,
`template_id` INTEGER NOT NULL,
`target_id` INTEGER NOT NULL,
CONSTRAINT `c_template_id` FOREIGN KEY (template_id) REFERENCES template(template_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `c_target_id` FOREIGN KEY (target_id) REFERENCES target(target_id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE INDEX IF NOT EXISTS `template_name_idx` ON `template` (`name`);
CREATE UNIQUE INDEX IF NOT EXISTS `tag_tag_uq` ON `tag` (`tag`);
CREATE UNIQUE INDEX IF NOT EXISTS `tag_template_id_tag_id_uq` ON `template_rule` (`template_id`, `tag_id`);
CREATE UNIQUE INDEX IF NOT EXISTS `profile_template_id_target_id_uq` ON `profile_v2` (`template_id`, `target_id`);
CREATE INDEX IF NOT EXISTS `type_idx` ON `target` (`type`);