## ADDED Requirements ### Requirement: 用户可以删除分类图标 系统应允许用户在分类编辑页面删除已生成的图标,将分类的 Icon 字段设置为 null。 #### Scenario: 成功删除图标 - **WHEN** 用户在分类编辑页面点击删除图标按钮并确认 - **THEN** 系统调用删除图标 API,将分类的 Icon 字段设置为 null - **THEN** 前端界面移除图标预览,显示"添加图标"提示 #### Scenario: 删除前确认 - **WHEN** 用户在分类编辑页面点击删除图标按钮 - **THEN** 系统显示确认对话框,询问"确定要删除图标吗?" - **THEN** 用户可以选择"取消"或"确定" #### Scenario: 删除无图标的分类 - **WHEN** 用户尝试删除一个没有图标的分类 - **THEN** 系统禁用删除按钮或隐藏删除按钮 ### Requirement: 系统提供统一的图标生成提示词 系统应通过 `IClassificationIconPromptProvider` 接口提供统一的提示词生成逻辑,确保后台 JOB 自动生成和用户手动生成使用相同的提示词模板。 #### Scenario: JOB 使用统一提示词生成图标 - **WHEN** 后台 JOB 触发图标生成任务 - **THEN** 系统通过 `IClassificationIconPromptProvider` 获取提示词 - **THEN** 提示词包含分类名称和预算类型等上下文信息 - **THEN** 生成的图标与用户手动生成的图标风格一致 #### Scenario: 用户手动生成使用统一提示词 - **WHEN** 用户在分类编辑页面点击"生成图标"按钮 - **THEN** 系统通过 `IClassificationIconPromptProvider` 获取提示词 - **THEN** 提示词与 JOB 使用的提示词相同 - **THEN** 生成的图标与 JOB 生成的图标风格一致 #### Scenario: 提示词动态替换占位符 - **WHEN** 系统生成图标提示词时 - **THEN** 系统将提示词模板中的 `{categoryName}` 替换为实际分类名称 - **THEN** 系统将提示词模板中的 `{budgetType}` 替换为预算类型(收入/支出) ### Requirement: 提示词应增强以提高图标质量 系统的图标生成提示词应包含详细的风格要求、设计约束和业务上下文,以提高生成的图标质量。 #### Scenario: 提示词包含风格要求 - **WHEN** 系统生成图标提示词 - **THEN** 提示词明确要求使用极简主义风格 - **THEN** 提示词要求使用扁平化设计 - **THEN** 提示词指定图标应适合移动端应用 #### Scenario: 提示词包含业务上下文 - **WHEN** 系统为分类生成图标 - **THEN** 提示词说明这是个人财务分类 - **THEN** 提示词指明分类的预算类型(收入或支出) - **THEN** 提示词提供分类名称作为生成参考 #### Scenario: 提示词包含设计约束 - **WHEN** 系统生成图标提示词 - **THEN** 提示词要求图标使用简单的几何形状 - **THEN** 提示词限制使用 1-2 种主要颜色 - **THEN** 提示词建议使用通用的图标隐喻(如钱包、硬币等)