トーク / 未読管理
トーク / 未読管理
概要
トークルームでの新規投稿・スレッドへの追記・自分へのメンションを 「未読」 として可視化し、既読化のタイミングと連動して画面上のバッジを点灯・消灯する機能。
未読は次の 3 軸で独立して管理される:
- ホーム未読: ルーム単位の未読(チャンネル / DM 共通)
- スレッド未読: スレッド(スレッド親 + そのスレッドコメント群)単位の未読
- メンション未読: 自分宛のメンション投稿単位の未読
講座詳細画面では、3 軸のいずれかに未読があれば該当講座の「トークタブ」に未読バッジが点く。講座一覧では未読バッジは出ない(講座一覧側へ未読をロールアップする仕組みは現状存在しない。CS 問い合わせで「他の講座の未読が一覧で見えない」となるケースの根拠)。
判定はサーバー側に保存された 「ルームの最新投稿 ID」 と ユーザーごとの「最終既読投稿 ID」 の比較で行う。最終既読は会員・講師のどちらも、原則として 画面でルーム / スレッドを開いたタイミング で更新される。DM の最新投稿がメイン / サブ講師宛の DM 配信投稿 だった場合、講師側ではそれを既読扱い相当に維持する例外がある(会員一斉配信の DM が講師の未読バッジを大量に点灯させないため)。
利用シナリオ
シナリオ 1: 新規投稿で未読バッジが点く
メイン講師がチャンネルへ投稿 → 数秒後、購読中の会員がアプリを開くとそのチャンネル名にバッジが点く。会員がチャンネルを開いた時点で既読扱いとなり、バッジが消える。
シナリオ 2: スレッドの未読
会員 A がスレッド親にスレッドコメントを投稿 → 親投稿者・既存のスレッド参加者・メンション対象がスレッドタブで未読バッジを確認できる。スレッドを開いた時点で当該スレッドの未読が消える。スレッド外のチャンネル一覧からは未読として浮かない。
シナリオ 3: メンション通知 + メンションタブ
別の会員が自分をメンションして投稿 → メンションタブに当該投稿が未読として並ぶ。ルームを開いて当該投稿まで到達した時点で既読化される(ルーム既読化と連動する)。
シナリオ 4: 会員宛 DM 配信での講師側挙動
メイン講師が会員全員に DM 配信を行う → 各会員の DM ルームには未読バッジが点くが、講師側でその DM ルームが既読だった場合、配信トークで未読化されない。配信前から未読が残っていた場合は、その未読状態が維持される。
シナリオ 5: 講座詳細画面のトークタブへの集約
講座詳細画面では、ホーム / スレッド / メンションの 3 軸のいずれかに未読があるとトークタブにバッジが点く。講座一覧側にはバッジが出ないため、複数の講座を契約している会員は、未読の有無を確認するには各講座詳細画面を開く必要がある(CS 問い合わせで「一覧で未読が見えない」と挙がるケースの根拠)。
利用可否(権限別)
未読管理は同一ユーザーが「未読を発生させる側(投稿)」と「未読を消費する側(閲覧・既読化)」の両方になり得るため、操作の性質で分けて整理する。
講座権限軸
未読の発生(投稿者視点)
| 操作 | 非会員 | 会員 | サブ講師 | メイン講師 |
|---|---|---|---|---|
| 投稿により他ユーザーへ未読を発生させる | × | ○ | ○ | ○ |
| 自分の投稿で自分自身に未読が立つ | — | × | × | × |
- 自分の投稿で自分自身は未読化されない(ルームを開いた状態で自分の投稿が表示されると、画面側で既読位置が前進するため)
- 非会員は投稿そのものができないため、未読発生の起点になり得ない
未読の消費(閲覧者視点)
| 操作 | 非会員 | 会員 | サブ講師 | メイン講師 |
|---|---|---|---|---|
| ホーム未読バッジ(ルーム単位)の表示 | × | ○ | ○ | ○ |
| スレッド未読バッジの表示 | × | ○ | ○ | ○ |
| メンション未読バッジの表示 | × | ○ | ○ | ○ |
| 講座トークタブへの未読ロールアップ | × | ○ | ○ | ○ |
| ルームを開いて既読化 | × | ○ | ○ | ○ |
| スレッドを開いて既読化 | × | ○ | ○ | ○ |
| 過去トーク制限を超えた古い投稿を未読対象にする | × | ×(※1) | ○ | ○ |
| DM 配信トークによる自身の未読バッジ抑止 | — | — | ○(※2) | ○(※2) |
- ※1: 過去トーク制限が有効なルームでは、会員は契約開始日以前の投稿を閲覧できない。閲覧不可な範囲のトークは未読にもならない(既読化操作も発生しない)。講師は常に閲覧可能で、未読対象にもなる
- ※2: 講師宛の DM ルームに最新投稿として DM 配信トーク が入った場合、その配信投稿だけで講師側の未読バッジは点かない。投稿前から残っていた未読は維持される
横断軸
| 操作 | 運営アドミン | テストユーザー | 投稿禁止 |
|---|---|---|---|
| 自身の未読バッジ受信 | ×(通常ユーザー経路は未実装) | (通常と同じ) | (通常と同じ。受信側の挙動には影響しない) |
| 他ユーザーの未読を強制既読化 | ×(運営アドミン経由の専用操作経路は存在しない) | × | × |
| 投稿による未読発生 | (運営アドミン経由の直接投稿はなし) | (通常と同じ) | × |
投稿禁止フラグの影響範囲: 投稿入口で弾かれるため、そのユーザーが起点の未読は発生しない。受信側として未読を表示・既読化する挙動には影響しない。
機能詳細(ふるまい)
未読の 3 軸
ホーム未読(ルーム単位)
- 対象: チャンネル / DM すべて
- 判定: ルームに新規投稿があり、自分の最終既読がそれより前であれば未読
- 既読化: ルーム画面を開いて投稿を表示すると、その時点で最新投稿まで既読化される
スレッド未読
- 対象: 自分が関与したスレッド(投稿・参加・メンション対象)
- 判定: スレッドに新規スレッドコメントが付き、自分のスレッド既読がそれより前であれば未読
- 既読化: 該当スレッドを開いて投稿を表示すると、当該スレッド内が既読化される。加えて v2.33.0 から、スレッドタブを離れる(サブタブ切替・講座ページ離脱)と未読スレッドがまとめて既読化される(FIN-363、トーク / スレッド・返信)。メンション未読は対象外で維持
- スレッドタブには自身に関係するスレッド未読のみが集約される
メンション未読
- 対象: 自分がメンションされた投稿(チャンネル / スレッド どちらでも)
- 判定: 当該投稿の最終既読が記録されていなければ未読
- 既読化: メンション元の投稿を含む位置までルームまたはスレッドを開くと既読化される(ルーム既読化・スレッド既読化と連動)
講座トークタブへの集約
- 講座トークタブ: 同一講座内のホーム / スレッド / メンションの 3 軸のいずれかに未読があれば点灯
- 講座一覧側へのロールアップは未実装: 講座一覧では未読バッジを出していない。複数講座を契約している会員は各講座詳細画面を開いて確認する必要あり
トークタブへの集約は保存値ではなく計算結果。3 軸の元データが既読化された瞬間に集約表示も消える。
既読化のタイミング
| トリガー | 影響範囲 |
|---|---|
| ルームを開いて投稿を表示 | ホーム未読クリア + 表示範囲のメンション既読 |
| スレッドを開いて投稿を表示 | 当該スレッド未読クリア + スレッド内のメンション既読 |
| 自分の投稿が完了した瞬間 | 自身のホーム未読クリア(自分の投稿で自分が未読化されないための更新) |
| 講師宛 DM ルームに DM 配信トークが投入された瞬間(講師側のみ) | 配信前に既読だった講師側ルームの最終既読を配信トーク ID へ更新(未読化抑止) |
既読化は前進のみ: より新しい投稿で既に既読化済みのルームに、古い既読位置が上書きされることはない。
DM ルームの未読チェック対象絞り込み
ユーザーが多数の DM ルームを抱える講座(例: 講師として大量の会員と 1:1 ルームを持つ)でも未読チェックを軽くするため、DM ルームの未読チェックは次のように絞られる:
- ルーム最新投稿日時 > 自分の DM 既読基準日時 のルームのみが未読チェック対象
- そのうち最新投稿日時の降順で先頭 100 件 に限定
- 既読確認が完了したルームについては DM 既読基準日時を更新(次回はそれ以降のみチェック)
100 件超の DM ルームに残った未読は、新しい投稿が増えて 100 件に入った時点で再度未読として浮上する設計。100 件圏外で滞留した古い未読は表示されない可能性がある(ユーザー影響としては「古すぎる DM の未読バッジが消えることがある」)。
過去トーク制限との関係
ルーム設定で「過去トーク制限」が有効な場合、会員は 契約開始日以前 の投稿を閲覧できない。閲覧できない範囲の投稿は未読対象にもならず、既読化操作も発生しない。講師(メイン / サブ)は常に閲覧可能で、過去トーク制限の影響を受けない。
投稿の編集・削除と未読
- 編集: 既読 / 未読の状態は変わらない。新規通知も発火しない
- 削除(論理削除): 既読 / 未読の状態は変わらない。最新投稿 ID 自体は削除されたトークから 1 つ前へ巻き戻り、判定ロジック上は既読扱いになり得る
関連ドキュメント
- 関連 PSD:
- トークルーム管理 — ルーム設定(過去トーク制限・DM)と未読の関係
- トーク投稿 — 投稿時の最終既読更新
- トーク / スレッド・返信 — スレッド構造(未作成)
- トーク / メンション — メンション記録(未作成)
- トーク通知 — プッシュ通知(未読バッジとは別経路)
- トーク / 閲覧・検索 — ルーム一覧表示と未読の関係(未作成)