"""MySQL DDL：日报结构化入库（表前缀 news_，目标 MariaDB 10.11）。

与 project_plan.md「十八、Milestone 10」及 docs/report_db_design.md 保持一致。
"""

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='日报事件明细'
    """,
]
