概要
全所属の組み合わせをフラットに列挙する getAllAffiliations() API を追加する。
背景
its-discord の /register コマンドで Discord autocomplete に全所属候補を表示するため、getAffiliationSteps() を再帰的に走査して全組み合わせを列挙するロジックを実装した。このロジックは core の内部構造(ステップの深さ、フィールド名)に密結合しており、大学構造が変わった場合に消費者側も壊れる。
getAffiliationSteps() が「対話的な段階選択」なら、getAllAffiliations() は「全選択肢の一覧取得」で、自然な対になる API。
提案する API
interface AffiliationOption {
label: string; // "学士課程 / 情報学部 / 昼間コース / 情報科学科"
courseType: CourseType;
value: Record<string, string>; // { faculty: "情報学部", enrollmentType: "昼間コース", department: "情報科学科" }
}
function getAllAffiliations(separator?: string): AffiliationOption[]
現在の組み合わせ数
- 学士課程: 47件
- 修士課程: 23件
- 博士課程: 7件
- 専門職学位課程: 1件
- 合計: 78件
概要
全所属の組み合わせをフラットに列挙する
getAllAffiliations()API を追加する。背景
its-discord の
/registerコマンドで Discord autocomplete に全所属候補を表示するため、getAffiliationSteps()を再帰的に走査して全組み合わせを列挙するロジックを実装した。このロジックは core の内部構造(ステップの深さ、フィールド名)に密結合しており、大学構造が変わった場合に消費者側も壊れる。getAffiliationSteps()が「対話的な段階選択」なら、getAllAffiliations()は「全選択肢の一覧取得」で、自然な対になる API。提案する API
現在の組み合わせ数