pj-picbook / picbook

9 stars 0 forks source link

読んだボタンの実装 #154

Closed karokita closed 2 years ago

karokita commented 2 years ago

概要

要件

Frame 2 (1)

(UI)

(挙動)

関連ストーリー

https://github.com/pj-picbook/picbook/issues/137

Romu1273x commented 2 years ago

@karokita この要件満たすにはbookshelfHistoriesスキーマを作成して、それを使った方がいいと思います。

以下でbooks.registeredDateTimeを見てスタンプ出してましたが、 参照するデータが、books.registeredDateTime → bookshelfHistories.date になるという認識で間違いありませんか? https://github.com/pj-picbook/picbook/issues/137

karokita commented 2 years ago

@Romu1273x Romuさん、おっしゃる通りです!

今は本棚登録をフラグとしてスタンプ出していただいている(books.registeredDateTimeを参照)と思うのですが、 本棚の読んだ履歴に残る( bookshelfHistories.dateを参照)タイミングで、スタンプを出していただくイメージです。

Romu1273x commented 2 years ago

了解しました。以下のマージ後から着手します。 https://github.com/pj-picbook/picbook/issues/137

karokita commented 2 years ago

@Romu1273x

Romuさん、本issueに関連して少しご相談です。テキストめちゃめちゃ長いです!

....................................................... ◎実装のご相談

「よーし、Romuさんに作っていただいた読んだボタン、ストアにリリースするぞ〜!わくわく」 と思ってテストフライトで試したところ、 ・登録時に登録してたデータが消える ・本棚に登録してないけれど、読んだ履歴にはつく という現象が起こりました。本番で登録していただいているユーザーがいることもあり、下記のような動きにするご相談可能でしょうか?

(初回に登録する書籍)本棚に登録→読んだ履歴にも登録  ※本棚登録ボタンを押したタイミングで複数処理が走る  └bookshelfsのbooksにデータが入る  └ bookshelfHistoriesにデータが入る     bookshelfHistories.dateをもとにスタンプが押される

(二回目以降に読んだ登録する書籍)読んだ履歴に登録、本棚には登録されない  ※読んだボタンを押すと読んだ履歴に登録される  └ bookshelfHistoriesにデータが入る     bookshelfHistories.dateをもとにスタンプが押される

(一度も本棚登録していない場合)本棚に登録していないと読んだ登録できない  ※本棚登録してない状態で読んだボタンを押すとエラーが出る  └本棚に登録してください、とエラーが出る。

....................................................... ◎ご質問 あとshemaを見ていて疑問が出てきました。 bookshelfHistoriesの中にdocumentIdが入っていて、その中に bookが入る形になってるかと思われます!将来的にbookごとに読んだ回数を集計できるようにしたいなと思ってまして。 「この構造でいけるのかな…?」 という疑問がわいてきました。

使用イメージ1.はらぺこあおむしという絵本を3回読んだ場合は、作品詳細ページに読んだ回数3回と表示される 使用イメージ2.読んだ回数ごとに、作品ランキングが出る

後々集計しやすい感じにできればと思っており、まだ自分の中でこれが答えだ!的なの出てないのですが、上記のような使用イメージがbookshelfHistoriesで実現可能か、少しご意見をお伺いしたいです🙏

....................................................... 長々と書きましたが、以上となります〜!

Romu1273x commented 2 years ago

@karokita

・登録時に登録してたデータが消える

登録してたデータっていうのは具体的に何ですか?

(初回に登録する書籍)本棚に登録→読んだ履歴にも登録  ※本棚登録ボタンを押したタイミングで複数処理が走る  └bookshelfsのbooksにデータが入る  └ bookshelfHistoriesにデータが入る     bookshelfHistories.dateをもとにスタンプが押される

(二回目以降に読んだ登録する書籍)読んだ履歴に登録、本棚には登録されない  ※読んだボタンを押すと読んだ履歴に登録される  └ bookshelfHistoriesにデータが入る     bookshelfHistories.dateをもとにスタンプが押される

(一度も本棚登録していない場合)本棚に登録していないと読んだ登録できない  ※本棚登録してない状態で読んだボタンを押すとエラーが出る  └本棚に登録してください、とエラーが出る。

この辺の対応は可能です。

bookshelfHistoriesの中にdocumentIdが入っていて、その中に bookが入る形になってるかと思われます!将来的にbookごとに読んだ回数を集計できるようにしたいなと思ってまして。 「この構造でいけるのかな…?」

本ごとの読んだ回数はbookshelfHistoriesではなく、books.historyの方を使えば実現可能だと思います。 ただ、books.historyはbookshelfHistoriesと同様、現状ないスキーマなので合わせて対応しないとですね