refactor: 移除 AI 词云、AI 时间轴和博客模块

暂停开发以下功能,将设计文档移至未完成计划文件夹:

- AI 词云 (Keyword Cloud): 前端、API、数据库模型、n8n 工作流
- AI 时间轴 (AI Timeline): 前端、API、数据库模型
- 博客 (Blog): 导航链接占位

变更内容:
- 删除词云和时间轴的前端页面及组件
- 删除 /api/keyword-cloud/* 和 /api/events/* API 端点
- 从 prisma/schema.prisma 移除 Keyword, Quarter, VisualStyleRule, KeywordCloudErrorLog, AIEvent 模型
- 从 validations.ts 移除相关 Zod Schema
- 从国际化消息中移除 keywordCloud/timeline 命名空间
- 从导航菜单移除词云、时间轴、博客链接
- 更新 CLAUDE.md 移除词云系统文档

设计文档已移至 .omc/plans/postponed-features/ 供后续恢复开发参考
This commit is contained in:
2026-02-21 12:35:54 +08:00
parent c2eabfea97
commit 79c25eb1b3
42 changed files with 708 additions and 3124 deletions
-92
View File
@@ -24,40 +24,6 @@ model ExternalLink {
@@map("external_links")
}
model KeywordCloudErrorLog {
id Int @id @default(autoincrement())
quarter String
keyword String?
errorType String
errorMessage String
rawData Json?
createdAt DateTime @default(now())
@@index([errorType], map: "idx_keywordCloudErrorLog_errorType")
@@index([quarter], map: "idx_keywordCloudErrorLog_quarter")
@@map("keyword_cloud_error_logs")
}
model Keyword {
id Int @id @default(autoincrement())
word String
trendScore Int
quarterId Int
description String
descriptionEn String?
detailPoints Json
detailPointsEn Json?
visualConfig Json
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
quarter Quarter @relation(fields: [quarterId], references: [id], onDelete: Cascade)
@@index([quarterId], map: "idx_keyword_quarterId")
@@index([trendScore], map: "idx_keyword_trendScore")
@@index([word], map: "idx_keyword_word")
@@map("keywords")
}
model ProjectDiscoveryTask {
id String @id @default(cuid())
status TaskStatus @default(PENDING)
@@ -117,24 +83,6 @@ model Project {
@@map("projects")
}
model Quarter {
id Int @id @default(autoincrement())
quarter String @unique
title String
titleEn String?
subtitle String?
subtitleEn String?
displayOrder Int @default(0)
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
keywords Keyword[]
@@index([displayOrder], map: "idx_quarter_displayOrder")
@@index([quarter], map: "idx_quarter_quarter")
@@map("quarters")
}
model Tag {
id String @id @default(cuid())
name String @unique
@@ -147,25 +95,6 @@ model Tag {
@@map("tags")
}
model VisualStyleRule {
id Int @id @default(autoincrement())
name String @unique
minScore Int
maxScore Int
color String
size String
border String
rotation String?
priority Int @default(0)
enabled Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([enabled], map: "idx_visualStyleRule_enabled")
@@index([minScore, maxScore], map: "idx_visualStyleRule_scoreRange")
@@map("visual_style_rules")
}
enum LinkType {
WEBSITE
GITHUB
@@ -185,24 +114,3 @@ enum TaskStatus {
FAILED
}
// ================================
// AI Timeline System Models
// ================================
model AIEvent {
id String @id @default(cuid())
title String
titleEn String?
eventDate DateTime
description String
descriptionEn String?
imageUrl String
sourceUrl String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([eventDate(sort: Desc)])
@@index([createdAt])
@@map("ai_events")
}