34 lines
1.5 KiB
SQL
34 lines
1.5 KiB
SQL
CREATE TABLE IF NOT EXISTS `categories` (
|
|
`id` varchar(36) NOT NULL,
|
|
`api_account_id` varchar(36) NOT NULL,
|
|
`remote_category_id` varchar(120) NOT NULL,
|
|
`name` varchar(160) NOT NULL,
|
|
`sort_order` int NOT NULL DEFAULT 0,
|
|
`raw_payload` json NULL,
|
|
`last_synced_at` datetime NOT NULL,
|
|
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `IDX_categories_account_remote` (`api_account_id`, `remote_category_id`),
|
|
KEY `IDX_categories_account` (`api_account_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS `courses` (
|
|
`id` varchar(36) NOT NULL,
|
|
`api_account_id` varchar(36) NOT NULL,
|
|
`category_id` varchar(36) NULL,
|
|
`remote_category_id` varchar(120) NOT NULL DEFAULT '',
|
|
`remote_course_id` varchar(160) NOT NULL,
|
|
`name` varchar(255) NOT NULL,
|
|
`is_favorite` tinyint NOT NULL DEFAULT 0,
|
|
`enabled` tinyint NOT NULL DEFAULT 1,
|
|
`raw_payload` json NULL,
|
|
`last_synced_at` datetime NOT NULL,
|
|
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `IDX_courses_account_remote_category` (`api_account_id`, `remote_course_id`, `remote_category_id`),
|
|
KEY `IDX_courses_account` (`api_account_id`),
|
|
KEY `IDX_courses_category` (`category_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|