tane/apps/app_seeds/test
vjrj e6e70e4b97 feat(handover): recordHandover — one transaction for the moment seeds change hands
Returns to the original model (data-model §2.8: a closed deal produces a
Movement and, optionally, a Plantare): the given/received Movement plus,
when they came with it, the Sale (informational payment note) and the
Plantare (return promise), all sharing the counterparty. The Movement
carries the promise via the plantare_id column the schema had reserved.

'Gave all' (one tap, the natural path for shrubs/whole plants) moves the
lot's whole quantity, leaves an empty jar (0, same unit), clears
abundance, and returns the lot to private — withdrawing its market offer
on the next publish cycle, price cleared with it.

New enum HandoverDirection; tests in test/data/handover_test.dart.
2026-07-11 08:00:08 +02:00
..
data feat(handover): recordHandover — one transaction for the moment seeds change hands 2026-07-11 08:00:08 +02:00
db feat(offers): asking price on lots, published with sale offers (schema v11) 2026-07-11 08:00:08 +02:00
domain feat(seed-saving): per-crop 'how to save this seed' guidance 2026-07-11 07:18:39 +02:00
i18n feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
security feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
services feat(chat): usable 1:1 chat — bottom-anchored, Drift-backed, dated 2026-07-11 06:40:50 +02:00
state feat(offers): asking price on lots, published with sale offers (schema v11) 2026-07-11 08:00:08 +02:00
support feat(chat): usable 1:1 chat — bottom-anchored, Drift-backed, dated 2026-07-11 06:40:50 +02:00
tool feat(species): expand catalog to ~1200 edible species from Wikidata 2026-07-10 02:00:47 +02:00
ui feat(seed-saving): source attribution + advisory note 2026-07-11 07:52:48 +02:00
flutter_test_config.dart feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00