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;
}
