背景
現状のCourse表示ロジックでは、休講/補講の突合や登録済み科目の参照に lessonName / subject.name を利用している箇所があります。
registeredSubjectsByName が subject.name をキーにしている
LectureOverride が lessonName + period でのみ識別される
このため、同名科目が存在する場合に誤突合するリスクがあります。
対応方針
LectureOverride が subjectId を扱えるようにデータモデルを拡張する
PersonalCalendarRepository 内の突合キーを subjectId ベースへ移行する
CourseReducer のマップキーも subjectId ベースへ整理する
- 既存データ互換が必要なら暫定的に
lessonName フォールバック戦略を設ける
完了条件
- 同名科目があるケースでも休講/補講表示が正しく反映される
- 既存ケースで挙動劣化がないことをテストで確認できる