gorillabbit / cyclic_todo

0 stars 0 forks source link

月の集計の方法を抜本的にリファクタリングする #157

Closed gorillabbit closed 2 months ago

gorillabbit commented 3 months ago

月額の集計をしているところ

どういうふうにするのが最適なのか 各支払いを作るときに、計算して、その時の資産残高を書く? 新しい支払いを作るときに、前のものを参照しないといけない。 カード類の計算が絶対に面倒

gorillabbit commented 2 months ago

残高テーブルは、変更日時と残高と変更をもたらした支払いのIDが書いてある 残高は変更日時でソートされていて、変更日時で一つ前のログに、その支払の値段を足している。 支払いを作ると同時に残高ログも更新される。 支払いは、更新すると、それ以降のログすべてに同じ値段だけ足し引きする。

支払いの値段を変えるときは、一度、変更前と変更後の値を持って、その差分だけ足し引きする。

gorillabbit commented 2 months ago

現時点の残高は、今の日時に最も近い過去のログ 月末の残高は、月末の日時に最も近いログ

gorillabbit commented 2 months ago

全部Purchaseにのっける

gorillabbit commented 2 months ago

通信が発生するとよくわからなくなるので、全部のデータをローカルにおとして、そこで計算する。結局Purchaseにはすべてあるのだから、それでいいだろう

gorillabbit commented 2 months ago

一時保存用のpurchaseを作ってそいつを操作しよう。

gorillabbit commented 2 months ago

追加するときは、idと、差分の情報だけをアプデする 更新処理の最後に、だから、フロントの処理の最後のところで、それをコミットする

gorillabbit commented 2 months ago

Purchaseの配列に、add updateとかtypeをつけたオブジェクトを入れて、そいつを最後に作成とアプデに分けてバルク処理

gorillabbit commented 2 months ago

子タスクのIDをどうするか。 idだけ取ってくることはできたはず