feat(shangwutong): sync classifications and update conversations

This commit is contained in:
2026-09-11 17:08:18 +08:00
parent a06d4f4199
commit 31f157a4f5
28 changed files with 2541 additions and 232 deletions
@@ -0,0 +1,2 @@
DROP INDEX IF EXISTS idx_shangwutong_classification_caches_sync_status;
DROP TABLE IF EXISTS shangwutong_classification_caches;
@@ -0,0 +1,15 @@
CREATE TABLE IF NOT EXISTS shangwutong_classification_caches (
inbox_id BIGINT PRIMARY KEY REFERENCES inboxes (id) ON DELETE CASCADE,
conversation_kinds JSONB NOT NULL DEFAULT '[]'::JSONB,
customer_color_kinds JSONB NOT NULL DEFAULT '[]'::JSONB,
sync_status VARCHAR(20) NOT NULL DEFAULT 'never',
synced_at TIMESTAMPTZ,
last_error_code VARCHAR(100),
last_error_message TEXT,
last_sync_event_id VARCHAR(128),
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_shangwutong_classification_caches_sync_status
ON shangwutong_classification_caches (sync_status);
@@ -0,0 +1,2 @@
DROP INDEX IF EXISTS idx_shangwutong_classification_caches_sync_status;
DROP TABLE IF EXISTS shangwutong_classification_caches;
@@ -0,0 +1,15 @@
CREATE TABLE IF NOT EXISTS shangwutong_classification_caches (
inbox_id INTEGER PRIMARY KEY REFERENCES inboxes (id) ON DELETE CASCADE,
conversation_kinds TEXT NOT NULL DEFAULT '[]',
customer_color_kinds TEXT NOT NULL DEFAULT '[]',
sync_status VARCHAR(20) NOT NULL DEFAULT 'never',
synced_at DATETIME,
last_error_code VARCHAR(100),
last_error_message TEXT,
last_sync_event_id VARCHAR(128),
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_shangwutong_classification_caches_sync_status
ON shangwutong_classification_caches (sync_status);