import { getRoleDomains } from '../../auth/menu-policy'; /** * 按用户角色生成 AI 助手欢迎语,引导用户使用与其岗位匹配的业务闭环。 * 优先级:教师 > 住宿运营 > 教务 > 教室运营 > 系统/超管 > 兜底。 */ export function welcomeDescription(roles: readonly string[], permissions: readonly string[]): string { const domains = getRoleDomains(roles, permissions); if (domains.has('teacher')) { return '我可以帮你查询今日课程、拉取钉钉考勤、查看排课。课程开始后就能看到打卡结果。'; } if (domains.has('accommodation')) { return '我可以帮你完成「宿舍档案 → 学生 → 入住 → 费用 → 账单」的住宿计费闭环,先告诉我你手头有什么数据。'; } if (domains.has('academic')) { return '我可以帮你完成「学生档案 → 分班 → 排课 → 考勤」的教学闭环,支持 Excel 批量导入与预览确认。'; } if (domains.has('classroom')) { return '我可以帮你管理教室排期与租赁订单,查询占用情况,避免时间冲突。'; } if (domains.has('system') || domains.has('super')) { return '我是恭学 AI 助手。我可以查询经营数据、管理业务数据、生成批量导入预览——所有写操作都会先经你确认。'; } return '我会在你的权限范围内查询数据,也能通过表单帮你录入学生等业务信息。'; } /** * 与角色匹配的业务闭环引导示例(用于 Prompts 建议话术)。 * 返回空数组表示当前角色无匹配示例。 */ export function workflowPromptExamples( roles: readonly string[], permissions: readonly string[], ): { label: string; description: string }[] { const domains = getRoleDomains(roles, permissions); const examples: { label: string; description: string }[] = []; if (domains.has('academic')) { examples.push( { label: '帮我从 Excel 导入学生并完成分班', description: '教学闭环' }, { label: '查一下这周有哪些班级还没排课', description: '教学闭环' }, ); } if (domains.has('accommodation')) { examples.push( { label: '帮我从 Excel 导入学生并安排入住', description: '住宿计费闭环' }, { label: '查一下本月还没生成账单的入住学生', description: '住宿计费闭环' }, ); } if (domains.has('classroom')) { examples.push( { label: '查一下这间教室本周的占用情况', description: '教室运营' }, ); } if (domains.has('teacher')) { examples.push( { label: '今天我有哪几节课?', description: '今日教学' }, ); } if (domains.has('system') || domains.has('super')) { examples.push( { label: '看一下本月的经营概览', description: '数据面板' }, { label: '帮我梳理宿舍计费的完整流程', description: '业务流程' }, ); } return examples; }