feat: implement third-party order sync

This commit is contained in:
2026-06-07 02:05:48 +08:00
commit aa593449bb
398 changed files with 51460 additions and 0 deletions
@@ -0,0 +1,33 @@
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;