運営アドミン / 講座管理
運営アドミン / 講座管理
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
運営アドミン向けの講座管理機能群。講師経路では行えない「講座そのものの新規登録」「運営判断による代理編集」「個別設定の細かな切替」「サブ講師の代理付与・解除」「契約書面・同意事項の登録」「料金プラン公開状態の調整」「交付書面非表示の一括初期化」「講座削除」をまとめて扱う。
主な利用想定:
- 講座新規登録: 講師は自身では講座を新規作成できないため、運営アドミンが代理登録
- 基本情報の代理編集: タイトル・サマリー・サムネイル・タグ・各種設定値などの調整
- 個別設定の代理切替: 事業者登録 / 受講者数表示 / ダウンロード可否(動画・資料)/ 個人情報タイプ / 同意条件非表示 / 領収書送付先メール / 配信元メール
- サブ講師の代理付与・解除: 対象ユーザーが講師ロールであることを前提にサブ講師に追加・削除
- 契約書面・同意事項の登録: 契約成立時にユーザーへ提示する書面群の登録(既存削除 → 再登録の置換更新)
- 料金プラン公開状態の調整: 開始日・終了日・非表示フラグの切替
- 交付書面非表示の一括初期化: 投資助言を行わない講座の交付書面非表示フラグを一括で ON 化(冪等処理)
- 講座削除: CS 対応や運営判断による論理削除
強制非公開の専用フラグは未提供: 「特定の講座を一時的に強制非公開化したい」要望に対しては、料金プランの非表示化 / 講座のプライベート化 / 講座削除のいずれかを組み合わせて実現する運用となる。
講師経路との関係: 講師は自身の講座について
../plan-management/edit.md経由で編集可能だが、本ページの運営アドミン経路は「運営側が代理で全項目編集する」「個別設定を細かく切り替える」用途の経路で、操作可能項目に差がある。
サブ講師付与の前提: サブ講師として追加する対象ユーザーは、内部のロール上で「講師」相当である必要がある。一般受講者をいきなりサブ講師に登録することはできず、ロール変更(
./user.md)が先に必要。
📝 レビュー観点:
- 目的: 講座の登録代行・運用調整・初期化処理
- 誰が使うか: 運営アドミン
- どこで使うか: 運営アドミン汎用ツール経由
- 隣接機能との関係: 講師による講座編集(
../plan-management/edit.md)、料金プラン管理(../plan-management/price.md)、横断マスター(./master.md)- CS 問い合わせで頻発する論点: 「強制非公開の経路」「サブ講師の代理付与」「交付書面非表示の一括初期化」「料金プランの公開状態切替」
- [本機能特有] 強制非公開の専用フラグは無し: 料金プラン非表示・プライベート化・削除のいずれかで代替
- [本機能特有] 差分更新と全置換更新が併存: PATCH(差分)と PUT(全置換)の使い分けが不明瞭
- [本機能特有] サブ講師条件: 対象が講師ロール保有でないと弾かれる(
user.not.owner)
利用シナリオ
シナリオ 1: 新規講座を運営アドミンが代理登録する
新たに講座を立ち上げる際、運営アドミンが講師の依頼を受けて講座本体を新規登録。タイトル・サマリー・サムネイル・タグ・初期料金プラン・初期設定をまとめて登録し、講師がその後の運営をできるようにする。
シナリオ 2: 既存講座の基本情報を代理で書き換える
CS 対応で「特定講座のタイトル / サマリーを至急変更したい」「特定設定を一括反映したい」要望に対して、運営アドミンが基本情報や設定を代理書換。
シナリオ 3: 各種設定の個別切替
「事業者登録の有無」「受講者数表示の有無」「動画・資料ダウンロード可否」「個人情報取得タイプ」などの設定を、必要な項目だけピンポイントで切り替える。
シナリオ 4: サブ講師の代理付与・解除
メイン講師の依頼を受けて、運営アドミンがサブ講師を代理で追加 / 削除。対象ユーザーが講師ロールでない場合は事前にロール変更が必要。
シナリオ 5: 契約書面・同意事項を更新する
法令対応や運用方針変更で、契約書面・同意事項の文面を全置換で更新。CS で「契約時の表示文言を最新版に揃えたい」要望時に利用。
シナリオ 6: 料金プラン公開状態を運営から調整する
特定の料金プランの公開期間・非表示フラグを運営アドミンが代理切替。期間限定キャンペーンや法的要件で一時的な非表示化が必要な場合に対応。
シナリオ 7: 交付書面非表示の一括初期化
投資助言を行わない講座群について、交付書面の非表示フラグを一括で初期化。法的要件の整理・新規導入時の一括反映用途。冪等な処理のため複数回実行可能。
シナリオ 8: 不要・不適切講座の削除
運営判断で講座そのものを削除する場合、運営アドミンが削除操作を実行(論理削除)。既存契約者への影響について事前確認が必要。
よくある失敗ケース
- 講座新規登録の必須項目欠落: タイトル・サマリー・サムネイル等の必須項目漏れでエラー
- タグ件数オーバー: タグ 5 件を超える指定でエラー
- 講師ロール未付与のユーザーをサブ講師に指定: ロール条件違反で弾かれる
- 既存契約者がいる講座の削除影響: 削除後の受講者対応が漏れるリスク。事前の確認が重要
- 強制非公開の経路選択ミス: 専用フラグがないため、料金プラン非表示・プライベート化・削除のどれを選ぶかで挙動が異なる
権限別仕様
権限定義は ../user-roles.md 参照。用語は ../terminology.md。
横断軸
| 操作 | 運営アドミン | 受講者 | 講師 |
|---|---|---|---|
| 講座登録 | ○ | × | × |
| 講座基本情報編集 | ○ | × | △(講師自身の講座のみ、別経路) |
| 講座設定の個別切替 | ○ | × | × |
| サブ講師の代理付け外し | ○ | × | × |
| 料金プラン公開状態切替 | ○ | × | × |
| 交付書面非表示の一括初期化 | ○ | × | × |
| 講座削除 | ○ | × | × |
📝 レビュー観点:
- 講座登録は運営アドミン専用(講師は自身では登録不可)
- 講師による編集経路(
../plan-management/edit.md)との操作可能項目の差分
機能詳細(ふるまい)
講座登録
入力項目:
- メイン講師(オーナー)ユーザー ID
- 講座タイプ: 投資助言系 / 事業系 等
- タイトル / サブタイトル / サマリー / サムネイル: 必須
- 紹介文(リッチテキスト): 受講者向けの講座紹介
- 投資助言の有無 / 同意条件の有無 / 無料プランフラグ
- 受講者数上限
- タグ: 最大 5 件
- 初期料金プラン: タイトル / 価格 / 契約期間 / 表示順 / 試用日数 等
- 講座設定: 事業者登録 / 表示制御 / ダウンロード可否 / 個人情報タイプ / 同意条件非表示 / メール設定
サブ講師の追加は別経路で実施。
基本情報編集
- 部分更新(指定したフィールドのみ反映)と、全項目置換更新の 2 種類が併存
- 部分更新は通常の運営対応で利用、全項目置換は「設定を完全に上書きしたい」ケースで利用
- 内部的な棲み分けは検討中(改善対象)
個別設定の切替
各項目を独立に切替可能:
- 事業者登録の有無
- 受講者数表示フラグ
- 動画ダウンロード可否
- 資料ダウンロード可否
- 個人情報取得タイプ
- 同意条件の非表示フラグ
- 領収書送付先メールアドレス
- 配信元メール名称・配信元メールアドレス
サブ講師の付け外し
- 対象ユーザーが講師ロールでないと操作不可(事前にロール変更が必要)
- 追加・削除のいずれも内部のトーク権限と連動して同期される
- メイン講師による経路(
../plan-management/edit.md)と同等の効果
契約書面・同意事項の登録
- 既存の登録分を全削除して再登録する置換更新方式
- 法令対応・文面改訂などの全体一括反映に利用
料金プランの公開状態切替
- 開始日・終了日・非表示フラグを更新
- 期間制御は手動運用(自動スケジューリングなし)
- 「期間限定キャンペーン」等は開始時 / 終了時に運営アドミンが切替
交付書面非表示の一括初期化
- 投資助言を行わない講座の交付書面非表示フラグを一括で ON
- 冪等処理のため複数回実行しても結果は変わらない
- 件数フィードバックは現時点では返却していない
講座削除
- 講座を内部的に削除扱いとする
- 既存契約者の契約自体は維持されるが、講座が一覧から見えなくなる
- 削除後の復旧経路は運営側の内部対応のみ
📝 レビュー観点:
- 入力 → 処理 → 出力: 経路入力 → 即時実行(非同期化なし)
- エッジケース: 既存契約者がいる講座の削除影響、サブ講師ロール条件違反
- エラー表示: ロール条件違反
user.not.owner- [本機能特有] 強制非公開の経路の不明瞭性: 専用フラグ無し、料金プラン非表示・プライベート化・削除のどれを採用するか
admin 操作
本ページ全体が運営アドミン操作の集約。
該当なし / 実装されていない
- 強制非公開の専用フラグ: 未実装(料金プラン公開状態 / プライベート化 / 削除で代替、dev 下段に詳細)
- 「凍結」専用フラグ: 未実装
📝 レビュー観点:
- 強制非公開フラグ追加の要否
- 講座復旧経路の有無
品質 / 約束事項
- 応答性: 即時反映
- 信頼性: 各操作のトランザクション境界に依存。サブ講師付け外しは Firestore 同期失敗時の戻し挙動を要確認
- 制限値:
- 講座名: 1 〜 50 文字(実質)
- タグ: 最大 5 件
- 料金プラン名(別名): 英数字 + アンダースコア + 半角スペース + ()
- データ保持: 論理削除フラグあり(実装は dev 下段)
📝 レビュー観点:
- [本機能特有] CreatePlanSubOwnerRequest の Bean Validation 欠落: 改善課題
- [本機能特有] 削除の論理 / 物理判別: dev 下段で確定
変更履歴(リリースノート候補)
v2.29.2: 2026-05-04(PSD 初版)
- [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない
📝 レビュー観点:
- 過去の主要変更(差分更新と全置換更新の併存・各個別設定の追加 等)
関連ドキュメント
- 権限定義:
../user-roles.md - 用語辞書:
../terminology.md - 関連 PSD:
../plan-management/edit.md— 講師による講座編集../plan-management/price.md— 料金プラン管理./master.md— マスター系(横断)