import type { JSX } from "react" import { notFound } from "next/navigation" import { Stethoscope } from "lucide-react" import { getTranslations } from "next-intl/server" import { requirePermission } from "@/shared/lib/auth-guard" import { Permissions } from "@/shared/types/permissions" import { getClassMasterySummary } from "@/modules/diagnostic/data-access" import { ClassDiagnosticView } from "@/modules/diagnostic/components/class-diagnostic-view" import { DiagnosticServiceProvider, } from "@/modules/diagnostic/services/diagnostic-service-context" import { defaultDiagnosticService } from "@/modules/diagnostic/services/default-diagnostic-service" import { createMonitoredDiagnosticService } from "@/modules/diagnostic/services/monitored-diagnostic-service" import { DiagnosticMonitorProvider, } from "@/modules/diagnostic/services/diagnostic-monitor-context" import { noopDiagnosticMonitor } from "@/modules/diagnostic/services/diagnostic-monitor" import { WidgetBoundary } from "@/shared/components/widget-boundary" export const dynamic = "force-dynamic" export default async function ClassDiagnosticPage({ params, }: { params: Promise<{ classId: string }> }): Promise { const { classId } = await params const ctx = await requirePermission(Permissions.DIAGNOSTIC_READ) const t = await getTranslations("diagnostic") // DataScope 校验:教师只能查看所教班级,学生/家长不可访问 if (ctx.dataScope.type === "class_taught" && !ctx.dataScope.classIds.includes(classId)) { notFound() } if (ctx.dataScope.type === "class_members" || ctx.dataScope.type === "children") { notFound() } const summary = await getClassMasterySummary(classId) if (!summary) { notFound() } // v2-P2-7: 包装默认服务以添加监控埋点(默认 no-op,生产环境可注入真实实现) const monitoredService = createMonitoredDiagnosticService( defaultDiagnosticService, noopDiagnosticMonitor, ) return (

{t("title.teacherClassDesc")}

) }