2026-07-02 21:28:33 +03:00
|
|
|
-- watch module — master schema (current version)
|
|
|
|
|
-- Full CREATE + seed for a fresh install. Must always reflect the LATEST schema
|
|
|
|
|
-- (every migrations/<semver>.sql delta folded in), mirroring core's
|
|
|
|
|
-- bin/install/database.sql. Owns: watch_categories, watch_folders, watch_logs,
|
|
|
|
|
-- watch_refresh. plex depends on watch and reuses watch_categories + watch_folders.
|
2026-06-28 21:51:36 +03:00
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `watch_categories` (
|
|
|
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
|
|
|
`type` int(1) DEFAULT '0',
|
|
|
|
|
`genre_id` int(8) DEFAULT '0',
|
|
|
|
|
`genre` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`category_id` int(8) DEFAULT '0',
|
|
|
|
|
`bouquets` varchar(4096) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
PRIMARY KEY (`id`)
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `watch_folders` (
|
|
|
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
|
|
|
`type` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`directory` varchar(2048) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`rclone_dir` varchar(2048) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`server_id` int(8) DEFAULT '0',
|
|
|
|
|
`category_id` int(8) DEFAULT '0',
|
|
|
|
|
`bouquets` varchar(4096) COLLATE utf8_unicode_ci DEFAULT '[]',
|
|
|
|
|
`last_run` int(32) DEFAULT '0',
|
|
|
|
|
`active` int(1) DEFAULT '1',
|
2026-07-02 21:28:33 +03:00
|
|
|
`delete_missing` tinyint(1) DEFAULT '0',
|
2026-06-28 21:51:36 +03:00
|
|
|
`disable_tmdb` int(1) DEFAULT '0',
|
|
|
|
|
`ignore_no_match` int(1) DEFAULT '0',
|
|
|
|
|
`auto_subtitles` int(1) DEFAULT '0',
|
|
|
|
|
`fb_bouquets` varchar(4096) COLLATE utf8_unicode_ci DEFAULT '[]',
|
|
|
|
|
`fb_category_id` int(8) DEFAULT '0',
|
|
|
|
|
`allowed_extensions` varchar(4096) COLLATE utf8_unicode_ci DEFAULT '[]',
|
|
|
|
|
`language` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`read_native` tinyint(4) DEFAULT '0',
|
|
|
|
|
`movie_symlink` tinyint(4) DEFAULT '0',
|
|
|
|
|
`auto_encode` tinyint(4) DEFAULT '1',
|
|
|
|
|
`ffprobe_input` tinyint(4) DEFAULT '1',
|
|
|
|
|
`transcode_profile_id` int(11) DEFAULT '0',
|
|
|
|
|
`auto_upgrade` tinyint(4) DEFAULT '0',
|
|
|
|
|
`fallback_title` tinyint(4) DEFAULT '0',
|
|
|
|
|
`plex_ip` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`plex_port` int(5) DEFAULT '0',
|
|
|
|
|
`plex_username` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`plex_password` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`plex_libraries` mediumtext COLLATE utf8_unicode_ci,
|
|
|
|
|
`scan_missing` tinyint(4) DEFAULT '0',
|
|
|
|
|
`extract_metadata` tinyint(4) DEFAULT '0',
|
|
|
|
|
`store_categories` tinyint(1) DEFAULT '0',
|
|
|
|
|
`duplicate_tmdb` tinyint(1) DEFAULT '0',
|
|
|
|
|
`check_tmdb` tinyint(1) DEFAULT '1',
|
|
|
|
|
`remove_subtitles` tinyint(1) DEFAULT '0',
|
|
|
|
|
`target_container` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`server_add` varchar(512) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`direct_proxy` tinyint(1) DEFAULT '0',
|
|
|
|
|
PRIMARY KEY (`id`)
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `watch_logs` (
|
|
|
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
|
|
|
`type` int(1) DEFAULT '0',
|
|
|
|
|
`server_id` int(8) DEFAULT '0',
|
|
|
|
|
`filename` varchar(4096) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
|
|
|
`status` int(1) DEFAULT '0',
|
|
|
|
|
`stream_id` int(8) DEFAULT '0',
|
|
|
|
|
`dateadded` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
PRIMARY KEY (`id`)
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `watch_refresh` (
|
|
|
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
|
|
|
`type` int(1) DEFAULT '0',
|
|
|
|
|
`stream_id` int(16) DEFAULT '0',
|
|
|
|
|
`status` int(8) DEFAULT '0',
|
|
|
|
|
`dateadded` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
PRIMARY KEY (`id`)
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
|
|
|
|
|
|
-- Default TMDb genre categories (idempotent — skipped if already present).
|
|
|
|
|
INSERT IGNORE INTO `watch_categories` (`id`, `type`, `genre_id`, `genre`, `category_id`, `bouquets`) VALUES
|
|
|
|
|
(1, 1, 28, 'Action', 0, '[]'),
|
|
|
|
|
(2, 1, 12, 'Adventure', 0, '[]'),
|
|
|
|
|
(3, 1, 16, 'Animation', 0, '[]'),
|
|
|
|
|
(4, 1, 35, 'Comedy', 0, '[]'),
|
|
|
|
|
(5, 1, 80, 'Crime', 0, '[]'),
|
|
|
|
|
(6, 1, 99, 'Documentary', 0, '[]'),
|
|
|
|
|
(7, 1, 18, 'Drama', 0, '[]'),
|
|
|
|
|
(8, 1, 10751, 'Family', 0, '[]'),
|
|
|
|
|
(9, 1, 14, 'Fantasy', 0, '[]'),
|
|
|
|
|
(10, 1, 36, 'History', 0, '[]'),
|
|
|
|
|
(11, 1, 27, 'Horror', 0, '[]'),
|
|
|
|
|
(12, 1, 10402, 'Music', 0, '[]'),
|
|
|
|
|
(13, 1, 9648, 'Mystery', 0, '[]'),
|
|
|
|
|
(14, 1, 10749, 'Romance', 0, '[]'),
|
|
|
|
|
(15, 1, 878, 'Science Fiction', 0, '[]'),
|
|
|
|
|
(16, 1, 10770, 'TV Movie', 0, '[]'),
|
|
|
|
|
(17, 1, 53, 'Thriller', 0, '[]'),
|
|
|
|
|
(18, 1, 10752, 'War', 0, '[]'),
|
|
|
|
|
(19, 1, 37, 'Western', 0, '[]'),
|
|
|
|
|
(20, 2, 28, 'Action', 0, '[]'),
|
|
|
|
|
(21, 2, 12, 'Adventure', 0, '[]'),
|
|
|
|
|
(22, 2, 16, 'Animation', 0, '[]'),
|
|
|
|
|
(23, 2, 35, 'Comedy', 0, '[]'),
|
|
|
|
|
(24, 2, 80, 'Crime', 0, '[]'),
|
|
|
|
|
(25, 2, 99, 'Documentary', 0, '[]'),
|
|
|
|
|
(26, 2, 18, 'Drama', 0, '[]'),
|
|
|
|
|
(27, 2, 10751, 'Family', 0, '[]'),
|
|
|
|
|
(28, 2, 14, 'Fantasy', 0, '[]'),
|
|
|
|
|
(29, 2, 36, 'History', 0, '[]'),
|
|
|
|
|
(30, 2, 27, 'Horror', 0, '[]'),
|
|
|
|
|
(31, 2, 10402, 'Music', 0, '[]'),
|
|
|
|
|
(32, 2, 9648, 'Mystery', 0, '[]'),
|
|
|
|
|
(33, 2, 10749, 'Romance', 0, '[]'),
|
|
|
|
|
(34, 2, 878, 'Science Fiction', 0, '[]'),
|
|
|
|
|
(35, 2, 10770, 'TV Movie', 0, '[]'),
|
|
|
|
|
(36, 2, 53, 'Thriller', 0, '[]'),
|
|
|
|
|
(37, 2, 10752, 'War', 0, '[]'),
|
|
|
|
|
(38, 2, 37, 'Western', 0, '[]'),
|
|
|
|
|
(39, 1, 10759, 'Action & Adventure', 0, '[]'),
|
|
|
|
|
(40, 2, 10759, 'Action & Adventure', 0, '[]'),
|
|
|
|
|
(47, 1, 10762, 'Kids', 0, '[]'),
|
|
|
|
|
(48, 2, 10762, 'Kids', 0, '[]'),
|
|
|
|
|
(50, 1, 10763, 'News', 0, '[]'),
|
|
|
|
|
(51, 2, 10763, 'News', 0, '[]'),
|
|
|
|
|
(52, 1, 10764, 'Reality', 0, '[]'),
|
|
|
|
|
(53, 2, 10764, 'Reality', 0, '[]'),
|
|
|
|
|
(54, 1, 10765, 'Sci-Fi & Fantasy', 0, '[]'),
|
|
|
|
|
(55, 2, 10765, 'Sci-Fi & Fantasy', 0, '[]'),
|
|
|
|
|
(56, 1, 10766, 'Soap', 0, '[]'),
|
|
|
|
|
(57, 2, 10766, 'Soap', 0, '[]'),
|
|
|
|
|
(58, 1, 10767, 'Talk', 0, '[]'),
|
|
|
|
|
(59, 2, 10767, 'Talk', 0, '[]'),
|
|
|
|
|
(60, 1, 10768, 'War & Politics', 0, '[]'),
|
|
|
|
|
(61, 2, 10768, 'War & Politics', 0, '[]'),
|
|
|
|
|
(62, 3, 1, 'Action', 0, '[]'),
|
|
|
|
|
(63, 3, 2, 'Action / Adventure', 0, '[]'),
|
|
|
|
|
(64, 3, 3, 'Adventure', 0, '[]'),
|
|
|
|
|
(65, 3, 4, 'Animation', 0, '[]'),
|
|
|
|
|
(66, 3, 5, 'Anime', 0, '[]'),
|
|
|
|
|
(67, 3, 6, 'Biography', 0, '[]'),
|
|
|
|
|
(68, 3, 7, 'Children', 0, '[]'),
|
|
|
|
|
(69, 3, 8, 'Comedy', 0, '[]'),
|
|
|
|
|
(70, 3, 9, 'Crime', 0, '[]'),
|
|
|
|
|
(71, 3, 10, 'Documentary', 0, '[]'),
|
|
|
|
|
(72, 3, 11, 'Drama', 0, '[]'),
|
|
|
|
|
(73, 3, 12, 'Family', 0, '[]'),
|
|
|
|
|
(74, 3, 13, 'Fantasy', 0, '[]'),
|
|
|
|
|
(75, 3, 14, 'History', 0, '[]'),
|
|
|
|
|
(76, 3, 15, 'Horror', 0, '[]'),
|
|
|
|
|
(77, 3, 16, 'Martial Arts', 0, '[]'),
|
|
|
|
|
(78, 3, 17, 'Music', 0, '[]'),
|
|
|
|
|
(79, 3, 18, 'Musical', 0, '[]'),
|
|
|
|
|
(80, 3, 19, 'Mystery', 0, '[]'),
|
|
|
|
|
(81, 3, 20, 'News', 0, '[]'),
|
|
|
|
|
(82, 3, 21, 'Non-Fiction', 0, '[]'),
|
|
|
|
|
(83, 3, 22, 'Reality', 0, '[]'),
|
|
|
|
|
(84, 3, 23, 'Romance', 0, '[]'),
|
|
|
|
|
(85, 3, 24, 'Science Fiction', 0, '[]'),
|
|
|
|
|
(86, 3, 25, 'Short', 0, '[]'),
|
|
|
|
|
(87, 3, 26, 'Sport', 0, '[]'),
|
|
|
|
|
(88, 3, 27, 'Talk Show', 0, '[]'),
|
|
|
|
|
(89, 3, 28, 'Thriller', 0, '[]'),
|
|
|
|
|
(90, 3, 29, 'TV Movie', 0, '[]'),
|
|
|
|
|
(91, 3, 30, 'War', 0, '[]'),
|
|
|
|
|
(92, 3, 31, 'Western', 0, '[]'),
|
|
|
|
|
(93, 4, 1, 'Action', 0, '[]'),
|
|
|
|
|
(94, 4, 2, 'Action & Adventure', 0, '[]'),
|
|
|
|
|
(95, 4, 3, 'Adventure', 0, '[]'),
|
|
|
|
|
(96, 4, 4, 'Animation', 0, '[]'),
|
|
|
|
|
(97, 4, 5, 'Anime', 0, '[]'),
|
|
|
|
|
(98, 4, 6, 'Biography', 0, '[]'),
|
|
|
|
|
(99, 4, 7, 'Children', 0, '[]'),
|
|
|
|
|
(100, 4, 8, 'Comedy', 0, '[]'),
|
|
|
|
|
(101, 4, 9, 'Crime', 0, '[]'),
|
|
|
|
|
(102, 4, 10, 'Documentary', 0, '[]'),
|
|
|
|
|
(103, 4, 11, 'Drama', 0, '[]'),
|
|
|
|
|
(104, 4, 12, 'Family', 0, '[]'),
|
|
|
|
|
(105, 4, 13, 'Fantasy', 0, '[]'),
|
|
|
|
|
(106, 4, 14, 'Food', 0, '[]'),
|
|
|
|
|
(107, 4, 15, 'Game Show', 0, '[]'),
|
|
|
|
|
(108, 4, 16, 'History', 0, '[]'),
|
|
|
|
|
(109, 4, 17, 'Home and Garden', 0, '[]'),
|
|
|
|
|
(110, 4, 18, 'Horror', 0, '[]'),
|
|
|
|
|
(111, 4, 19, 'Indie', 0, '[]'),
|
|
|
|
|
(112, 4, 20, 'Martial Arts', 0, '[]'),
|
|
|
|
|
(113, 4, 21, 'Mini-Series', 0, '[]'),
|
|
|
|
|
(114, 4, 22, 'Musical', 0, '[]'),
|
|
|
|
|
(115, 4, 23, 'Mystery', 0, '[]'),
|
|
|
|
|
(116, 4, 24, 'News', 0, '[]'),
|
|
|
|
|
(117, 4, 25, 'Reality', 0, '[]'),
|
|
|
|
|
(118, 4, 26, 'Romance', 0, '[]'),
|
|
|
|
|
(119, 4, 27, 'Science Fiction', 0, '[]'),
|
|
|
|
|
(120, 4, 28, 'Sci-Fi & Fantasy', 0, '[]'),
|
|
|
|
|
(121, 4, 29, 'Soap', 0, '[]'),
|
|
|
|
|
(122, 4, 30, 'Special Interest', 0, '[]'),
|
|
|
|
|
(123, 4, 31, 'Sport', 0, '[]'),
|
|
|
|
|
(124, 4, 32, 'Suspense', 0, '[]'),
|
|
|
|
|
(125, 4, 33, 'Talk', 0, '[]'),
|
|
|
|
|
(126, 4, 34, 'Talk Show', 0, '[]'),
|
|
|
|
|
(127, 4, 35, 'Thriller', 0, '[]'),
|
|
|
|
|
(128, 4, 36, 'Thriller', 0, '[]'),
|
|
|
|
|
(129, 4, 37, 'Travel', 0, '[]'),
|
|
|
|
|
(130, 4, 38, 'War', 0, '[]'),
|
|
|
|
|
(131, 4, 39, 'War & Politics', 0, '[]'),
|
|
|
|
|
(132, 4, 40, 'Western', 0, '[]');
|