feat(app): ask 'how did it do?' when a harvest is noted (schema v13)

The note growers most wish they had two seasons later — did it do well,
was it worth keeping — never had a home. New append-only GardenOutcomes
table (lotId, season year, three-face rating, free note); the question
appears ONCE, inline, right after recording a harvest in the batch story,
and is skippable without a trace. The answer shows as one more story
line. Rides backups/sync like every mutable table (JSON codec, LWW
import, HLC clock absorb). Migration v12→v13 guarded + verified from
every historical version.
This commit is contained in:
vjrj 2026-07-18 12:18:25 +02:00
parent 92fd84590b
commit bb5b3d4a43
20 changed files with 6030 additions and 15 deletions

View file

@ -142,6 +142,18 @@ class ConditionChecks extends Table with SyncColumns {
TextColumn get notes => text().nullable()();
}
/// "How did it do in MY garden" one optional, skippable answer per season
/// (v13). Captured at the natural moment (recording a harvest), shown as one
/// more line of the lot's story. Deliberately minimal — a coarse rating plus a
/// free note; the note carries any nuance. Mirrors [GerminationTests]: a dated
/// log under a Lot.
class GardenOutcomes extends Table with SyncColumns {
TextColumn get lotId => text()();
IntColumn get year => integer().nullable()(); // season, e.g. 2026
TextColumn get rating => textEnum<GardenOutcomeRating>().nullable()();
TextColumn get notes => text().nullable()();
}
/// The append-only event log on a Lot history + provenance DAG.
class Movements extends Table with AppendOnlyColumns {
TextColumn get lotId => text()();