refactor: fix remaining P2 architecture issues
Fix P2-6: proxy.ts now uses Permissions constants instead of hardcoded strings Fix P2-7: useA11yId file no longer exists (use-aria-live.ts already in hooks/) Fix P2-8: schema.ts section numbering reordered to continuous 1-24 Fix P2-11: announcements dead code void wasPublished already removed Fix P2-17: app-sidebar.tsx uses hasRole() instead of permission-based role inference Fix P2-18: scheduling/actions.ts removes trailing re-export of data-access; 4 pages now import directly from data-access Sync architecture docs 004 and 005
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
"generatedAt": "2026-06-17",
|
||||
"formatVersion": "1.1",
|
||||
"rule": "每次文件修改后须同步更新本文件",
|
||||
"lastUpdate": "P1-1 已修复:所有跨模块直查已改为通过对方 data-access 接口(homework/grades/parent/diagnostic/elective/proctoring/notifications/scheduling/classes 模块);exams 模块 getSubjectsAction/getGradesAction 改为调用 school data-access;questions 模块 getKnowledgePointOptionsAction 改为调用 textbooks data-access;grades 模块多处直查 classes/classEnrollments/subjects/users 改为调用对应模块 data-access;classes 模块 actions 直查 grades 表改为调用 school data-access,getSessionTeacherId 改为通过 auth-guard.getAuthContext;attendance 模块 getClassStudentsForAttendance 改为通过 classes data-access;scheduling 模块 autoScheduleAction 直查 users 改为通过 users data-access;notifications 模块 sendClassNotificationAction 直查 classes/classEnrollments 改为通过 classes data-access;proctoring 模块跨模块直查 exams/examSubmissions/users 改为通过 exams/users data-access;diagnostic 模块 updateMasteryFromSubmission 跨模块直查 4 张表改为通过 exams/questions data-access;dashboard 教师仪表盘直查 users 改为通过 users data-access;users 模块 updateUserProfile 绕过 data-access 已下沉;P2-20 已修复:getDemoStudentUser 从 homework 模块迁移至 users 模块 getCurrentStudentUser(homework 保留 re-export 向后兼容),6 个 student 页面(dashboard/assignments/assignments-[assignmentId]/courses/textbooks/textbooks-[id]/schedule)改用 users 模块,消除对 homework 的虚假依赖;student/elective 改用 getAuthContext();shared/types/action-state.ts 移除分号修复 Prettier 违规;shared/types/permissions.ts EXAM_PROCTOR_READ 字符串从 exam:proctor_read 改为 exam:proctor:read 统一命名;为 ActionState/DataScope/AuthContext 添加 JSDoc 注释;P0-2 已修复:shared/lib ↔ auth 循环依赖已解决,新增 shared/lib/session.ts 单一入口封装 getSession()(dynamic import 打破静态循环),audit-logger/change-logger/auth-guard 改为通过 session.ts 获取 session;P1-6 已修复:http-utils.ts 新增 getUserAgent(),audit-logger/change-logger/login-logger 删除本地重复 IP/UA 提取逻辑,统一复用 resolveClientIp/getUserAgent;P0-1 已修复:exams/data-access.persistAiGeneratedExamDraft 改为调用 questions/data-access.createQuestionWithRelations,不再直查 questions 表;P0-2 已修复:exams/data-access.getExams/getExamById/getExamsDashboardStats 改为调用 classes/data-access.getClassGradeIdsByClassIds,不再直查 classes 表;P1-2 已修复:exams/homework/questions/announcements actions 层 DB 操作下沉到 data-access;P2-2 已修复:ai.ts 拆分为 ai/ 目录;P0-8 已修复:school actions 层 DB 操作下沉到 data-access,logAudit 改为 after() 异步非阻塞;P0-7 已修复:classes/data-access-stats.ts 和 data-access-students.ts 不再直查 homework/exams 表,改为调用新增的 homework/data-access-classes.ts 暴露的 7 个函数;新增 diagnostic/schema.ts(6 个 Zod schema)和 classes/schema.ts(13 个 Zod schema),actions.ts 中手动 typeof 校验全部替换为 Zod safeParse"
|
||||
"lastUpdate": "P2-6/P2-7/P2-8/P2-11/P2-17/P2-18 已修复:proxy.ts 改用 Permissions 常量替代硬编码字符串;useA11yId 文件已不存在(use-aria-live.ts 已在 hooks/ 目录);schema.ts 分节编号重新编号为连续 1-24,消除 8b/14b/乱序问题;announcements 死代码 void wasPublished 已不存在;layout/app-sidebar.tsx 改用 hasRole() 判断角色,不再用权限反推角色;scheduling/actions.ts 移除末尾 re-export data-access,4 个页面改为从 data-access 直接导入;P1-1 已修复:所有跨模块直查已改为通过对方 data-access 接口(homework/grades/parent/diagnostic/elective/proctoring/notifications/scheduling/classes 模块);P0-2 已修复:shared/lib ↔ auth 循环依赖已解决,新增 shared/lib/session.ts 单一入口;P1-6 已修复:http-utils.ts 统一 IP/UA 提取;P0-1/P0-2/P0-3/P0-4/P0-5/P0-7/P0-8 已修复;P1-2 已修复:actions 层 DB 操作下沉到 data-access;P2-2/P2-3/P2-12/P2-20 已修复"
|
||||
},
|
||||
"architectureOverview": {
|
||||
"layers": [
|
||||
|
||||
Reference in New Issue
Block a user