07 DiscordBOT 仕様
7.1 基本方針
- スラッシュコマンドのみ
- レスポンス言語:日本語のみ
- WebUI でないとできないこと以外はすべて BOT から操作可能
- 作業の細かいフロー図・順序登録編集は WebUI のみ(BOT からは不可)
7.2 実行場所ルール
| 操作種別 | 実行場所 |
|---|---|
| 自分のみに関わる操作(通知設定など) | DM または指定サーバー内 |
| それ以外全操作 | 指定サーバー内のみ |
7.3 権限管理
Discord ロール+DB フラグ(member_roles の role 値)の両方を併用する。
7.4 対応コマンドカテゴリ
- 出欠確認・回答
- 活動セッション管理
- 作業管理(全操作・ただしフロー図は WebUI 推奨)
- 通知・リマインド
- 管理者用コマンド
- アンケート
- ユーティリティ(
/help、/ping)
7.5 出欠機能
登録フロー
- 副管理者以上が活動を事前登録(
/session create) - 登録直後、指定チャンネルへメンション付きメッセージ+Embed を即時送信
- Embed にボタン 4 種を設置
ボタン一覧
| ボタン | 意味 | 初期状態 |
|---|---|---|
| ◎ 出席予定 | 会場に行く | 未押下 |
| ○ 遅刻予定 | 遅れて行く | 未押下 |
| △ 未定 | まだわからない | 未押下 |
| × 欠席予定 | 行けない | 未押下 |
全員初期状態は unknown(未押下)。
注釈機能
- 各ユーザーが「注釈を追加」ボタンから自由テキストを入力・保存可能
- Discord / WebUI 両対応
- データは
attendance_notesテーブルに保存
催促通知
- 管理者が作成した時間パターンテンプレート(例:1 日前・12 時間前)でチャンネルへメンション送信
- または活動ごとに個別設定も可能
- 時間パターンの作成・編集・削除は管理者のみ
- パターンは
attendance_reminder_patterns/attendance_reminder_timingsで管理
当日催促
活動開始の指定時間前に「未定(△)」のメンバーへメンションを飛ばし、いずれかに変更するよう促す。
締め切り
- 活動開始以降:副管理者以上が手動打ち切り
- 活動開始前:管理者のみが打ち切り・削除可能
7.6 アンケート機能
作成権限
副管理者以上(Discord / WebUI 両対応)
構成
タイトル
① 選択肢内容(時間・時間範囲・会場など)
② 選択肢内容
...
各選択肢に対して ○(OK)△(うーん)×(NG)ボタン
締め切り
- 日時指定あり / なしを選択可能
- 副管理者以上が手動打ち切り可能
- 打ち切り解除は管理者のみ
アンケートテンプレート
- 公開前にテンプレートとして保存・管理可能
- テンプレート管理:副管理者以上
- データは
survey_templates/survey_template_itemsで管理
7.7 DM 通知設定
Discord DM のポップアップ複数選択 または WebUI から設定。
Discord アカウント ID ごとに個別管理(サブ垢も個別に設定可能)。
| 設定項目 | 選択肢 |
|---|---|
| 通知 | あり / なし |
| 端末フィルター | なし / 新規端末 / 既存端末 |
| 手段フィルター | なし / セッション / Discord OAuth2 / 緊急用(メアド+ユーザー ID+認証手段) |
| 緊急フィルター | なし / 2FA / フィンガープリント / もしものキー |
| もしものキーフィルター | なし / 発行申請時 / 発行承諾時 / 利用時 |
- 各フィルターは「なし」または「それ以外を複数選択」可能
- 矛盾する組み合わせは非表示(選択不可)