@@ -8,21 +8,32 @@ export const Stream = t.UnionEnum(["s1", "s2", "s3", "l1", "l2", "l3"]);
88/**
99 * 授業コード
1010 * 例: 30003
11- * フォーマットが不明なので、 String にしておく。後の調査でフォーマットを探し、 Regex に変更したい。
1211 */
1312export type CourseCode = typeof CourseCode . static ;
14- export const CourseCode = t . String ( ) ;
13+ export const CourseCode = t . RegExp ( "^\\d{5}$" ) ;
1514
1615/**
1716 * 共通科目コード
1817 * 例:
19- * - CAS-FC1871L1
2018 * - XAB-CD1001L2
21- * 参考: https://www.u-tokyo.ac.jp/ja/students/classes/course-numbering.html
19+ * - CAS-FC1871L1
20+ * - CAS-GC1L37S4
21+ * - CASPG1F40L3 // 絶対入力ミスだが、データにあるので対応しなければならない
22+ * 仕様: https://www.u-tokyo.ac.jp/ja/students/classes/course-numbering.html
23+ * 本当は CommonSubjectCode になるはずだが、公式が勝手に CommonCourseCode と読んでいる
2224 */
23- export type CommonSubjectCode = typeof CommonSubjectCode . static ;
24- export const CommonSubjectCode = t . RegExp (
25- "^[A-Z]{3}-[A-Z]{2}[0-9]{3}[A-Z]{1}$" ,
25+ export type CommonCourseCode = typeof CommonCourseCode . static ;
26+ export const CommonCourseCode = t . RegExp (
27+ `
28+ ^[CFG] ${ /* [1] 課程コード */ "" }
29+ (?:LA|ME|EN|LE|SC|AG|EC|AS|ED|PH|GL) ${ /* [2] 開講学部・研究科(教育部)コード */ "" }
30+ -?
31+ [A-Z]{2} ${ /* [3] 開講学科・専攻等コード */ "" }
32+ [1-7] ${ /* [4] レベルコード */ "" }
33+ [0-9a-zA-Z]{3} ${ /* [5] 整理番号 */ "" }
34+ [LSEPTZ] ${ /* [6] 授業形態コード */ "" }
35+ [123459] ${ /* [7] 使用言語コード */ "" }
36+ $` . replaceAll ( / \s / g, "" ) ,
2637) ;
2738
2839/**
@@ -60,17 +71,19 @@ export const Evaluation = t.UnionEnum(["試験", "レポート", "出席", "平
6071 * 単位の種類。
6172 */
6273export type ClassType = typeof ClassType . static ;
63- export const ClassType = t . UnionEnum ( [
74+ export const ClassType = t . UnionEnum ( [ "基礎" , "要求" , "主題" , "総合" , "展開" ] ) ;
75+
76+ export type ClassSeries = typeof ClassSeries . static ;
77+ export const ClassSeries = t . UnionEnum ( [
6478 "基礎" ,
65- "総合" ,
6679 "要求" ,
6780 "主題" ,
6881 "展開" ,
69- "L " ,
70- "A " ,
71- "B " ,
72- "C " ,
73- "D " ,
74- "E " ,
75- "F " ,
82+ "総合L " ,
83+ "総合A " ,
84+ "総合B " ,
85+ "総合C " ,
86+ "総合D " ,
87+ "総合E " ,
88+ "総合F " ,
7689] ) ;
0 commit comments