#[derive(Clone, Copy, PartialEq, Eq)]
pub(crate) enum SlashActionKind {
    AiAssistant,
    AiWrite,
    ContinueWriting,
    Summarize,
    MoreAi,
    Paragraph,
    Heading1,
    Heading2,
    Heading3,
    Heading4,
    BulletList,
    OrderedList,
    Todo,
    AdvancedTodo,
    Quote,
    CodeBlock,
    Divider,
    SimpleTable,
    Mindmap,
    Image,
    UploadAttachment,
    Toc,
}

#[derive(Clone, Copy)]
pub(crate) struct SlashAction {
    pub(crate) kind: SlashActionKind,
    pub(crate) id: &'static str,
    pub(crate) category: &'static str,
    pub(crate) icon: &'static str,
    pub(crate) label: &'static str,
    pub(crate) description: &'static str,
    pub(crate) shortcut: &'static str,
}

pub(crate) const SLASH_ACTIONS: [SlashAction; 22] = [
    SlashAction {
        kind: SlashActionKind::AiAssistant,
        id: "ai-assistant",
        category: "AI 助理",
        icon: "✦",
        label: "AI 助理",
        description: "按 Wolai 基线保留 AI 入口",
        shortcut: "/ai",
    },
    SlashAction {
        kind: SlashActionKind::AiWrite,
        id: "ai-write",
        category: "AI 助理",
        icon: "✎",
        label: "用 AI 写作",
        description: "唤起写作辅助入口",
        shortcut: "/yaixz",
    },
    SlashAction {
        kind: SlashActionKind::ContinueWriting,
        id: "continue-writing",
        category: "AI 助理",
        icon: "↪",
        label: "续写",
        description: "按当前上下文继续写作",
        shortcut: "/xx",
    },
    SlashAction {
        kind: SlashActionKind::Summarize,
        id: "summarize",
        category: "AI 助理",
        icon: "≡",
        label: "总结",
        description: "对当前内容生成摘要",
        shortcut: "/zj",
    },
    SlashAction {
        kind: SlashActionKind::MoreAi,
        id: "more-ai",
        category: "AI 助理",
        icon: "…",
        label: "更多",
        description: "更多 AI 命令",
        shortcut: "›",
    },
    SlashAction {
        kind: SlashActionKind::Paragraph,
        id: "paragraph",
        category: "基础块列表",
        icon: "Aa",
        label: "文本",
        description: "普通正文块",
        shortcut: "/wb",
    },
    SlashAction {
        kind: SlashActionKind::Todo,
        id: "todo",
        category: "基础块列表",
        icon: "☑",
        label: "待办列表",
        description: "创建可勾选任务",
        shortcut: "/dblb",
    },
    SlashAction {
        kind: SlashActionKind::AdvancedTodo,
        id: "advanced-todo",
        category: "基础块列表",
        icon: "☑",
        label: "高级待办列表",
        description: "保留 Wolai 高级待办入口",
        shortcut: "/gjdblb",
    },
    SlashAction {
        kind: SlashActionKind::Heading1,
        id: "heading-1",
        category: "基础块列表",
        icon: "H1",
        label: "主标题",
        description: "一级标题",
        shortcut: "/h1",
    },
    SlashAction {
        kind: SlashActionKind::Heading2,
        id: "heading-2",
        category: "基础块列表",
        icon: "H2",
        label: "大标题",
        description: "二级标题",
        shortcut: "/h2",
    },
    SlashAction {
        kind: SlashActionKind::Heading3,
        id: "heading-3",
        category: "基础块列表",
        icon: "H3",
        label: "中标题",
        description: "三级标题",
        shortcut: "/h3",
    },
    SlashAction {
        kind: SlashActionKind::Heading4,
        id: "heading-4",
        category: "基础块列表",
        icon: "H4",
        label: "小标题",
        description: "四级标题",
        shortcut: "/h4",
    },
    SlashAction {
        kind: SlashActionKind::BulletList,
        id: "bullet",
        category: "基础块列表",
        icon: "•",
        label: "列表",
        description: "记录普通要点",
        shortcut: "/lb",
    },
    SlashAction {
        kind: SlashActionKind::OrderedList,
        id: "ordered",
        category: "基础块列表",
        icon: "1.",
        label: "数字列表",
        description: "记录步骤顺序",
        shortcut: "/szlb",
    },
    SlashAction {
        kind: SlashActionKind::Quote,
        id: "quote",
        category: "基础块列表",
        icon: "❝",
        label: "引述文字",
        description: "包住注释与摘录",
        shortcut: "/ys",
    },
    SlashAction {
        kind: SlashActionKind::CodeBlock,
        id: "code-block",
        category: "基础块列表",
        icon: "<> ",
        label: "代码片段",
        description: "插入带语义的代码块",
        shortcut: "/dm",
    },
    SlashAction {
        kind: SlashActionKind::Divider,
        id: "divider",
        category: "基础块列表",
        icon: "—",
        label: "分割线",
        description: "插入分隔线",
        shortcut: "/fgx",
    },
    SlashAction {
        kind: SlashActionKind::SimpleTable,
        id: "simple-table",
        category: "进阶块列表",
        icon: "▦",
        label: "简单表格",
        description: "插入基础表格",
        shortcut: "/jdbg",
    },
    SlashAction {
        kind: SlashActionKind::Mindmap,
        id: "mindmap",
        category: "进阶块列表",
        icon: "⌘",
        label: "思维导图",
        description: "插入 kernel projection 导图块",
        shortcut: "/dt",
    },
    SlashAction {
        kind: SlashActionKind::Image,
        id: "image",
        category: "媒体与附件",
        icon: "▧",
        label: "图片",
        description: "上传并插入图片",
        shortcut: "/tp",
    },
    SlashAction {
        kind: SlashActionKind::UploadAttachment,
        id: "upload-attachment",
        category: "媒体与附件",
        icon: "↥",
        label: "上传附件",
        description: "上传 Office、PDF 或其他文件",
        shortcut: "/fj",
    },
    SlashAction {
        kind: SlashActionKind::Toc,
        id: "toc",
        category: "进阶块列表",
        icon: "☰",
        label: "页面目录",
        description: "根据当前标题生成目录",
        shortcut: "/toc",
    },
];
