📝
会話記録機能の基本設計書
HAKUSHI設計書
HAKUSHIの説明
基本設計書を作ってみたので、メモがてらzennに残しておこうと思います。
会話記録の基本設計
会話記録機能概要
現在のworkスペース機能において、キャラクターがjsにベタがされた定型文が表示されるだけだったが、それをL⚪︎NEの会話機能と同等にするために、会話が記録されるようにしたい。
ユーザーからの発言パターン
- 再生ボタンをおした時に、「【タイトル】を始めます」という発言をする
- えんぴつボタンをおした時に、「【本日作業したタイトルのカンマ区切り】をやりました」という発言をする
ユーザーが受け取るパターン
- 登録しているキャラクターから、えんぴつボタンを押下時に、「ねぎらいの言葉」が保存される。
- 初回時、登録されているメッセージが空だった場合、登録しているキャラクターの固定文章が登録される
例: 「やっほー」「今日からよろしくね。」
労いの言葉について
労いの言葉は、現在1日に一回えんぴつボタン押下時に表示される日付に対応した言葉を流用する。
固定文章について
キャラクターごとに、コードベタ書きで管理する。
テーブル設計
WorkPlaceMessages
- message_id
- user_id
- sender_user_id
- message_content
- create_at
- update_at
API設計
現代段階では、削除機能、修正機能はつけない。
status_code
はHTTPレスポンスに準拠すること
WorkPlaceMessagesCreate
メッセージを作成するエンドポイント
- Endpoint: /api/work-place-messages
- Method: POST
- Request:
{ "user_id": "ユーザーID", "sender_user_id": "送信者ユーザーID", "message_content": "メッセージ内容", "work_finish": bool, }
- Response:
{ "status_code": 201, "message": { "message_id": "生成されたメッセージID", "user_id": "ユーザーID", "sender_user_id": "送信者ユーザーID", "message_content": "メッセージ内容", "create_at": "作成日時", "update_at": "更新日時" } }
WorkPlaceMessagesGet
メッセージを取得するエンドポイント
- Endpoint: /api/work-place-messages
- Method: GET
- Request:
{ "user_id": "ユーザーID" }
- Response:
{ "status_code": 200, "messages": [ { "message_id": "メッセージID", "user_id": "ユーザーID", "sender_user_id": "送信者ユーザーID", "message_content": "メッセージ内容", "create_at": "作成日時", "update_at": "更新日時" }, ... ] }
シナリオフロー
-
ユーザーがアクセスした際に、Vueの
create
メソッドで/api/work-place-messages
のエンドポイントにGET
リクエストします。-
status_code
が200であれば、フロントエンドで描画を行います。 - それ以外の場合は、エラーメッセージを表示し、ユーザーをHOMEページにリダイレクトします。
-
-
ユーザーが再生ボタンを押すと、以下のアクションが発生します。
- 「【現在選択しているタイトル】を始めます。」というメッセージ内容で、
work_finish
パラメータをfalse
に設定して、/api/work-place-messages
のエンドポイントにPOST
リクエストします。
- 「【現在選択しているタイトル】を始めます。」というメッセージ内容で、
-
ユーザーがえんぴつボタンを押すと、以下のアクションが発生します。
- 「【本日作業したタイトルのカンマ区切り】をやりました」というメッセージ内容で、
work_finish
パラメータをtrue
に設定して、/api/work-place-messages
のエンドポイントにPOST
リクエストします。
- 「【本日作業したタイトルのカンマ区切り】をやりました」というメッセージ内容で、
Discussion