TODOリストのすべて達成したときのアクションについて

こんにちは!
瞑想アプリを作っています。
ユーザーが毎日とりくむ瞑想をいくつか選び→瞑想リストとして表示され
→その瞑想が完了すると横にチェックが付き
→すべての瞑想にチェックが付くと、リストの下に「目標達成!」の文字が表示される。
というようにしたいのですが

image

全てのリストの瞑想にチェックが付く、というのがアクションのトリガーになるにはどうすればいいでしょうか…

DBですが
userの中の「毎日の瞑想」propertyを瞑想collectionとN:Nリレーションを組んでいます
userの中の「今日行った瞑想」propertyを瞑想DBとN:Nリレーションを組み、瞑想行ったあと、その瞑想をaddするようにしています。

image

リストのチェックがつくのはchange visibilityで、ユーザーの「今日行った瞑想」propertyの瞑想が
current瞑想(毎日の瞑想)を含むとき、としています。

目標達成のsometime visibleで
「今日行った瞑想」propertyの瞑想が「毎日の瞑想」propertyを含むとき
としたかったのですが
上手くいきませんでした。。。

質問の仕方が悪く、うまく伝わっていなければすみません!確認していただければ幸いです。
どうかよろしくお願いいたします。

DB構造と関連する条件を最初から提示されていて、非常にわかりやすい質問のされ方だと感じました!

その上で、思ったのは、少し回りくどい処理のようにも感じました。

詳細をわかっていないので、的外れだったら恐縮なんですが、毎日の瞑想と今日行った瞑想を分けて管理されているのは、何か意図があるのでしょうか?

自分だったら、毎日の瞑想に完了/未完了を示す真偽値プロパティか、完了日を示すタイムスタンププロパティを設けて、それによって毎日の瞑想のピンクのチェックを切り替えるようにします。

その上で、目標達成表示の表示条件には、logginUserに紐づく完了している瞑想の数=LogginUserに紐づく瞑想の数、を入れて制御するのがよいのではないかと思いました!

「いいね!」 1

ご返信ありがとうございます!
なるほど、「毎日の瞑想」と「今日行った瞑想」をユーザーcollectionの中の別propertyとしてではなく
(collectionとpropertyがあるのでややこしいですね)
たとえば、毎日の瞑想collectionを作って
その中に完了/未完了を示す真偽値プロパティや
完了日を示すタイムスタンププロパティをつくるというご意見ですね。
シンプルですね!

詳細まで説明できておらずすみません!
ユーザーは毎日の瞑想に設定した瞑想以外にも、瞑想ができることになっていて
完了した瞑想数=毎日の瞑想数では成立できなくて…

ちなみに、完了のピンクのチェックは、
次の日にはまたクリアされていてほしいです。

いろいろと条件がややこしくすみません!

重ねて逆質問になってしまうんですが、毎日の瞑想とそれ以外の瞑想を別コレクションにする背景は何かあるんでしょうか?
必要なプロパティが異なるのでしょうか?

瞑想コレクション一つで瞑想全てを登録できるようにすれば、シンプルに作れるのではと考えた次第ではです。

ご確認ありがとうございます。
うーん、別コレクションにする背景はないですね!
なるほど、瞑想コレクションの中の、毎日の瞑想(ユーザーとリレーション)を作るということですね。
それで行ってみます。

・・・

どうにかこうにかこれで、目的達成まで表示させることができました!

「完了した瞑想、記事」のDBをつくり
image

目標達成のsometime visibleで「完了した瞑想、記事」のデータの数を参照
その条件は
今日行われた

なおかつ、その瞑想コンテンツを毎日の瞑想にしている人がユーザーを含むもの

上記の条件を満たす、「完了した瞑想、記事」のデータの数が
ユーザーの毎日の瞑想の数と一緒のとき

目標達成を出す

としました!

頭が痛い(笑)!

「いいね!」 1