2023/10/05 初稿
2023/10/10 追記
id、createdAt、updatedAt は省略
新規作成
TimelineItem
: スレッドに投稿する文字列
STI で設定ミスに紐づくタイムラインに表示する情報を集約する。これにより、タイムラインに表示する情報を複数のテーブルから集約しなくて済むようにする。
これに伴い以下の 3 つのテーブルをいずれ廃止する(おそらくタイムラインのエピック)
Slack のように、メインの投稿から枝分かれする形で投稿を追加できる必要もないかと思うので、再帰クエリへの対応は考えずに、単純に occurredAt でソートすることで一連の投稿をスレッド形式で表示できするようにする。
スレッドのメッセージを削除した場合に LINE のようにそれが分かるように「削除されました」表示するか、Slack のように表示しないか迷ったが、実装してみた結果邪魔な気がしたので Slack の方針をとることにする。
2023/10/06 追記: YY と話した
TimelineItem
Name | Type | Memo |
---|---|---|
eventName | String | - 以下のようなenum |
- comment(投稿追加)
…
comment以外の値はスコープ外 | | … | | |
TimelineComment
Name | Type | Memo |
---|---|---|
timelineItemID | String | TimelineItem と 1vs 1 関係 |
… |
没)投稿だけのテーブルを作る案
2023/10/11 追記
Timeline
とする。[GET] /v1/.../timeline?mID=xxx&ev=yyy
query
ev: string[]
comment
handling_status_changed