Fincs

運営アドミン / 講師(オーナー)管理

運営アドミン / 講師(オーナー)管理

本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(## 🔧 実装詳細 以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。

概要

運営アドミン向けの講師(メイン講師)アカウント管理機能群。講師の新規登録・情報更新・退任処理、配信主体(運営アドミン経路で利用される横断軸)への紐付け管理、講師別の料率設定をまとめて扱う。

主な対象操作:

  • 講師の新規登録: 既存ユーザーを講師に昇格、または新規ユーザーとして登録
  • 講師情報の更新: 紹介文・肩書き等の更新
  • 講師の退任処理(論理削除): 講師レコードを論理削除フラグで無効化
  • 講師別料率設定: 課金料率・最低手数料・契約者名等の登録・更新
  • 配信主体(account)の作成・名称更新: 配信主体の運用基盤を構築
  • 配信主体への講師紐付け / 解除: 1 配信主体に複数講師を紐付ける運用が可能
  • 配信主体への講座紐付け / 解除: 1 講座は単一の配信主体のみに所属(重複は禁止)
  • 講師の請求先名称(v2.30.0 で追加): 請求書発行時の宛名等で利用する想定の項目

主な利用想定は、新規講師の登録・初期設定、講師退任時の運営対応、配信主体(事業者単位の講座 / 講師グループ)の構築、料率改定対応など。

講師退任時の整合性に注意: 「講師の論理削除」を実行しても、配信主体への紐付け・受講者ロール上の状態・料率設定は内部にそのまま残るため、完全な退任処理には複数の操作を手動で組み合わせる必要がある。CS で「退任講師の情報が残っている」相談があった場合、以下を順に確認:

  1. 講師レコードの論理削除(本機能)
  2. 配信主体への紐付け解除(./owner.md の配信主体経由)
  3. ユーザーロールの戻し(./user.md
  4. 料率設定の削除

配信主体への講座所属は単一: 1 講座は 1 つの配信主体にのみ所属でき、複数の配信主体に同じ講座を紐付けることはできない(内部で重複検知)。

アカウント名の重複は許容される: 配信主体の名称は重複を許容(チェックなし)。同名の配信主体を区別する必要がある場合は別の識別子(ID 等)で管理。

📝 レビュー観点:

  • 目的: 講師アカウントのライフサイクル管理、配信主体(account)の構築
  • 誰が使うか: 運営アドミン
  • どこで使うか: 運営アドミン汎用ツール経由
  • 隣接機能との関係: ユーザー管理(./user.md)、講座管理(./plan.md
  • CS 問い合わせで頻発する論点: 「講師退任時の整合性」「複数講師で 1 アカウント共有」「料率変更履歴」「講座と配信主体の紐付け」
  • [本機能特有] 講師退任時の関連データが残存: 講師レコードの論理削除のみ、配信主体紐付け / users.user_role_id は手付かず
  • [本機能特有] 配信主体への講座は単一所属: 1 講座が複数 account に紐付くのは禁止(アプリ層で担保)
  • [本機能特有] アカウント名重複可: unique 制約も Service チェックも無し

利用シナリオ

シナリオ 1: 新規講師を登録する(新規ユーザー)

完全な新規ユーザーを講師として登録。運営アドミンがユーザー ID・メールアドレス・ユーザー名を指定して講師アカウントを作成。同時にユーザー本体もメイン講師ロールで作成され、デフォルトアイコンが自動設定される。

シナリオ 2: 既存ユーザーを講師に昇格する

すでに受講者として利用しているユーザーを講師に昇格させるケース。同じユーザー ID で講師登録を実行すると、ユーザーのロールがメイン講師に書き換えられ、講師レコードが追加される。

シナリオ 3: 講師情報(紹介文・肩書き)を更新する

講師の紹介文・肩書き(投資家タイトル)を運営アドミンが代理更新。新規シーズン開始時の文言改訂や、肩書き変更への追随用途。本機能で更新できるのは紹介文と肩書きのみで、それ以外の項目は登録時のまま。

シナリオ 4: 講師退任処理を行う

講師の退任が決まった場合、「講師レコードの論理削除 → 配信主体紐付け解除 → ロール戻し → 料率設定削除」の複数操作を順に実施。単一経路で完了する機能ではないため、漏れがないようチェックリストで運用するのが望ましい。

シナリオ 5: 講師別料率設定の登録・更新

講師ごとの課金料率・最低手数料・契約者名を運営アドミンが登録 / 更新。事業者契約条件に応じて講師ごとに異なる料率を設定するケースに対応。論理削除済みの料率設定がある場合は復活させる動きをする。

シナリオ 6: 配信主体(account)の作成と紐付け

新たな事業者・講師グループ単位の配信主体を作成し、講師を紐付け、講座を紐付けるという 3 ステップで運用基盤を構築。配信主体の名称は英数字 + アンダースコアのみ(日本語不可)。

シナリオ 7: 配信主体から講座を解除する

事業者契約終了などの理由で、特定の講座を配信主体から外す。

よくある失敗ケース

  • 配信主体名称の文字種違反: 英数字 + アンダースコア以外を含む名称は登録できない
  • 講座の二重紐付け試行: すでに別の配信主体に紐付いている講座を新たな配信主体に紐付けようとするとエラー
  • 講師重複登録試行: 同じユーザー ID で講師登録を再度実行すると重複エラー
  • 退任後の関連データ残存: 講師の論理削除のみで配信主体紐付け・ロール・料率設定が残ってしまうケース。退任時は複数経路で確実に整理する
  • 配信主体名称の重複: チェックがないため重複できてしまう。運用上は注意(識別子で区別)

権限別仕様

権限定義は ../user-roles.md 参照。用語は ../terminology.md

横断軸

操作 運営アドミン 受講者 講師
講師登録 × ×
講師情報更新(紹介・肩書き) × ×
講師の論理削除 × ×
講師別料率設定の登録・更新・削除 × ×
配信主体(account)作成・名称更新 × ×
配信主体への講師紐付け・解除 × ×
配信主体への講座紐付け・解除 × ×

📝 レビュー観点:

  • 全操作が運営アドミン専用、講師には経路なし

機能詳細(ふるまい)

講師の登録

入力項目:

  • ユーザー ID: 講師として登録する対象のユーザー識別子
  • メールアドレス: 新規ユーザーの場合の連絡先
  • ユーザー名: 新規ユーザーの場合の表示名
  • 会社 ID: 講師が所属する事業者の識別子
  • 紹介文: 講師紹介(マークダウン)
  • 肩書き: 投資家タイトル等

挙動:

  • ユーザー本体が未登録の場合、メイン講師ロールで新規作成 + デフォルトアイコンを自動設定
  • ユーザー本体が既存の場合、ロールをメイン講師に書き換え(受講者からの昇格パス)
  • 同一ユーザー ID で既に講師登録済みの場合は重複エラー

講師情報の更新

  • 更新可能項目: 紹介文肩書き の 2 項目のみ
  • それ以外の項目(メールアドレス・会社 ID 等)は登録時の値が維持される
  • 紹介文・肩書き以外の項目を更新したい場合は別経路で対応

講師の論理削除(退任の第 1 ステップ)

  • 講師レコードを内部的に論理削除フラグで無効化
  • ユーザー本体・配信主体紐付け・ユーザーロール・料率設定は手付かずで残る
  • 完全な退任のためには、本操作に加えて以下の手動実施が必要:
    1. 配信主体への紐付け解除
    2. ユーザーロールを講師から戻す(./user.md
    3. 料率設定の削除

講師別料率設定

  • 講師ごとに課金料率・最低手数料・契約者名等を設定可能
  • 登録時、論理削除済みの設定があれば復活させる動き
  • 更新は部分更新(指定したフィールドのみ反映、未指定フィールドは現状維持)
  • 削除は論理削除

配信主体(account)の作成・名称更新

  • 配信主体(運営アドミン経路で利用される横断軸)を新規作成
  • 名称は英数字 + アンダースコアのみで構成(日本語不可、特殊文字不可)
  • 名称の重複は許容(重複チェックなし)

配信主体への講師紐付け

  • 1 配信主体に複数の講師を紐付け可能(N:N の関係)
  • 解除時は内部的に物理削除として処理
  • 既に紐付け済みの組み合わせを再度紐付け試行するとエラー

配信主体への講座紐付け

  • 1 講座は単一の配信主体のみに所属可能
  • 既に別の配信主体に紐付いている講座を新規紐付けしようとするとエラー
  • 解除時は内部的に物理削除

講師の請求先名称(v2.30.0 追加)

  • 講師に「請求先講師名」項目を追加
  • 請求書発行時の宛名・事務上の対応窓口名等で利用する想定
  • 既存講師は本項目が未設定のまま残るため、運用上の埋め方(一斉更新 / 都度更新)は別途方針決定要

📝 レビュー観点:

  • 入力 → 処理 → 出力: 経路入力 → 即時実行
  • エッジケース: 既存ユーザーへの講師付与時のロール上書き、再登録時の例外処理(Controller 層で未捕捉)
  • エラー表示: owner.existalready exists(紐付け重複時の IllegalArgumentException)、正規表現違反
  • 編集・削除の挙動: 講師論理削除では関連紐付けが残存(CS 注意)
  • [本機能特有] 講師退任時の整合性: 複数経路の手動実施が必要

admin 操作

本ページ全体が運営アドミン操作の集約。

該当なし / 実装されていない

  • 講師退任の単一経路: 未実装(講師の論理削除 + 配信主体紐付け解除 + ロール戻しを手動で組み合わせる必要)
  • アカウント名の重複チェック: 未実装(unique 制約・Service チェックともに無し)
  • account_owner / account_owner_plan の論理削除復元動線: 物理削除のため復元なし

📝 レビュー観点:

  • 講師退任 1 経路化の必要性
  • アカウント名重複の運用上の許容性

品質 / 約束事項

  • 応答性: 即時反映
  • 信頼性: 各操作のトランザクション境界に依存
  • 制限値:
    • アカウント名: 英数字 + アンダースコアのみ(最大文字数未指定)
    • 講師別料率設定: 部分更新仕様
  • データ保持: 講師は論理削除で内部的に保持。配信主体紐付けは物理削除

📝 レビュー観点:

  • [本機能特有] アカウント名最大文字数の運用上の妥当性

変更履歴(リリースノート候補)

v2.30.0: 2026-05-05

  • [追加] 講師に「請求先講師名」項目を追加(FIN-241)。請求書発行時の宛名等で利用する想定。運営アドミンが講師管理画面から編集可能(編集 UI は後続対応の可能性あり、要確認)

v2.29.2: 2026-05-04(PSD 初版)

  • [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない

📝 レビュー観点:

  • 過去の主要変更(account 概念導入 / owner_fee_setting 追加 / 配信主体軸の整備 等)

関連ドキュメント


このページの内容を AI に質問しますか?
関連 spec を自動抽出して ChatGPT / Claude などに渡せます。
AI Prompt で開く →