チャット機能 概要
Speakeasy のチャット機能は Fizz サービスが担当し、店舗スタッフと顧客の1対1コミュニケーションを実現します。
| 機能 | 説明 |
|---|---|
| 1対1チャット | 店舗×顧客のプライベートルーム |
| リアルタイム配信 | WebSocket + Durable Objects |
| メッセージ種別 | テキスト、配信、システム、広告 |
| 添付ファイル | R2 ストレージ経由の画像・ファイル |
| メッセージ有効期限 | displayDays による自動非表示 |
| 既読管理 | ユーザー別未読カウント |
| メッセージ検索 | キーワードによる全文検索 |
| チャットNG | 3種類のブロック制御 |
アーキテクチャ
Section titled “アーキテクチャ”ルーム識別子
Section titled “ルーム識別子”チャットルームは shopId:contactId の形式で一意に識別されます。
roomId = "shop_abc123:contact_xyz789"- 1つの店舗と1人の連絡先の組み合わせで1ルーム
- ルームは Upsert(存在しなければ作成)
- ルーム削除は論理削除ではなく物理削除