"""MySQL DDL:日报结构化入库(表前缀 news_,目标 MariaDB 10.11)。 与 news 项目 docs/db_schema.md 保持一致(news_report / news_event)。 历史日报已由 news 项目 report-import 导入,本包只负责新日报写入与幂等建表。 """ from __future__ import annotations DDL_STATEMENTS: list[str] = [ # 日报主表 """ CREATE TABLE IF NOT EXISTS news_report ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, report_date DATE NOT NULL COMMENT '日报日期', report_type VARCHAR(16) NOT NULL COMMENT 'finance=A股日报 / intl=国际财经日报', file_name VARCHAR(160) NOT NULL DEFAULT '' COMMENT '源文件名(历史解析);新生成可为空', generated_at DATETIME NOT NULL COMMENT '生成时间', ai_summary TEXT NULL COMMENT 'AI 摘要全文', stats JSON NULL COMMENT '数据总览统计快照(管道/情绪/重要度/事件类型/来源分布)', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uk_report_file (report_date, report_type, file_name), KEY idx_report_date (report_date) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='每日日报主表' """, # 日报事件明细 """ CREATE TABLE IF NOT EXISTS news_event ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, report_id BIGINT UNSIGNED NOT NULL COMMENT 'FK → news_report.id', section VARCHAR(16) NOT NULL COMMENT '板块: xwlb=新闻联播 / news=财经新闻 / cninfo=公告调研 / intl=国际重要事件', rank INT NOT NULL DEFAULT 0 COMMENT '板块内序号', importance INT NULL COMMENT '重要度 1-5', event_type VARCHAR(64) NULL COMMENT '事件类型', title VARCHAR(512) NOT NULL COMMENT '标题', summary TEXT NULL COMMENT '摘要/正文', sentiment VARCHAR(8) NULL COMMENT 'positive/negative/neutral', source VARCHAR(64) NULL COMMENT '来源', url VARCHAR(512) NULL COMMENT '原文链接', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, KEY idx_report_section (report_id, section), KEY idx_title (title(255)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='日报事件明细' """, ]