feat: 小程序脚本首页重构 + 社交数据导入 + TTS 播放优化
- 后端:新增社交数据导入/审批/洞察生成 API(SocialContent/SocialInsight) - 后端:优化脚本上下文服务,TTS 服务增强 - 小程序:重构脚本首页布局,新增社交导入页面 - 小程序:新增 useTtsPlayer composable,移除旧 ScriptAudioPlayer 组件 - 小程序:新增社交导入服务,优化请求服务 - SQL:新增社交数据导入建表脚本 - 文档:补充设计文档和实施计划 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
-- Social data import and confirmed profile insights.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS t_social_content_item (
|
||||
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID primary key',
|
||||
user_id VARCHAR(64) NOT NULL COMMENT 'Owner user id',
|
||||
platform VARCHAR(32) NOT NULL COMMENT 'Source platform: xiaohongshu/weibo/wechat/other',
|
||||
source_type VARCHAR(32) NOT NULL COMMENT 'manual/link/screenshot',
|
||||
source_url VARCHAR(1000) COMMENT 'Original source url',
|
||||
title VARCHAR(200) COMMENT 'Imported content title',
|
||||
content MEDIUMTEXT COMMENT 'User supplied or extracted text',
|
||||
image_urls JSON COMMENT 'Related image urls',
|
||||
published_at DATETIME COMMENT 'Original publish time',
|
||||
import_status VARCHAR(32) DEFAULT 'imported' COMMENT 'imported/ocr_pending/ocr_failed',
|
||||
approved_for_ai TINYINT DEFAULT 0 COMMENT 'Whether user allows AI analysis',
|
||||
content_hash VARCHAR(64) COMMENT 'Content dedupe hash',
|
||||
raw_metadata JSON COMMENT 'Import metadata',
|
||||
deleted_at DATETIME COMMENT 'Soft delete time',
|
||||
create_by VARCHAR(64) COMMENT 'Creator id',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'Create time',
|
||||
update_by VARCHAR(64) COMMENT 'Updater id',
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Update time',
|
||||
is_deleted TINYINT DEFAULT 0 COMMENT 'Soft delete flag',
|
||||
remarks VARCHAR(500) COMMENT 'Remarks',
|
||||
INDEX idx_social_content_user_time (user_id, create_time),
|
||||
INDEX idx_social_content_platform (platform),
|
||||
INDEX idx_social_content_hash (user_id, content_hash),
|
||||
INDEX idx_social_content_deleted (is_deleted)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Social content imported by users';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS t_social_profile_insight (
|
||||
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID primary key',
|
||||
user_id VARCHAR(64) NOT NULL COMMENT 'Owner user id',
|
||||
source_item_id VARCHAR(64) COMMENT 'Source social content id',
|
||||
insight_type VARCHAR(32) NOT NULL COMMENT 'value/interest/emotion_pattern/script_theme',
|
||||
label VARCHAR(100) NOT NULL COMMENT 'Insight label',
|
||||
summary VARCHAR(1000) COMMENT 'Insight summary',
|
||||
evidence_excerpt VARCHAR(500) COMMENT 'Short supporting excerpt',
|
||||
confidence DECIMAL(5,4) DEFAULT 0 COMMENT 'Extraction confidence',
|
||||
status VARCHAR(32) DEFAULT 'suggested' COMMENT 'suggested/confirmed/rejected/deleted',
|
||||
user_edited TINYINT DEFAULT 0 COMMENT 'Whether user edited label or summary',
|
||||
confirmed_at DATETIME COMMENT 'Confirmed time',
|
||||
deleted_at DATETIME COMMENT 'Soft delete time',
|
||||
create_by VARCHAR(64) COMMENT 'Creator id',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'Create time',
|
||||
update_by VARCHAR(64) COMMENT 'Updater id',
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Update time',
|
||||
is_deleted TINYINT DEFAULT 0 COMMENT 'Soft delete flag',
|
||||
remarks VARCHAR(500) COMMENT 'Remarks',
|
||||
INDEX idx_social_insight_user_status (user_id, status),
|
||||
INDEX idx_social_insight_source (source_item_id),
|
||||
INDEX idx_social_insight_deleted (is_deleted)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'User-reviewable social profile insights';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS t_user_consent_log (
|
||||
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID primary key',
|
||||
user_id VARCHAR(64) NOT NULL COMMENT 'Owner user id',
|
||||
platform VARCHAR(32) COMMENT 'Related social platform',
|
||||
consent_type VARCHAR(64) NOT NULL COMMENT 'Consent type',
|
||||
consent_version VARCHAR(32) COMMENT 'Consent copy version',
|
||||
scope VARCHAR(200) COMMENT 'Authorized data scope',
|
||||
purpose VARCHAR(500) COMMENT 'Authorized usage purpose',
|
||||
status VARCHAR(32) COMMENT 'granted/revoked',
|
||||
granted_at DATETIME COMMENT 'Granted time',
|
||||
revoked_at DATETIME COMMENT 'Revoked time',
|
||||
client_ip VARCHAR(64) COMMENT 'Client ip',
|
||||
device_info JSON COMMENT 'Device metadata',
|
||||
create_by VARCHAR(64) COMMENT 'Creator id',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'Create time',
|
||||
update_by VARCHAR(64) COMMENT 'Updater id',
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Update time',
|
||||
is_deleted TINYINT DEFAULT 0 COMMENT 'Soft delete flag',
|
||||
remarks VARCHAR(500) COMMENT 'Remarks',
|
||||
INDEX idx_user_consent_user_time (user_id, create_time),
|
||||
INDEX idx_user_consent_type (consent_type)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'User consent audit log';
|
||||
Reference in New Issue
Block a user