The Plantare — a promise to reproduce seed and return some (data-model §2.7, the seed-domain Pledge with return_kind=similar). NOT a sale. Local-first v1: your honest ledger of commitments (from/to a person by name); the bilateral signed cross-party form is a later social-layer phase. - New Plantares table (SyncColumns): varietyId, direction (iReturn/owedToMe), counterparty, owedDescription, madeOn, dueBy, status (open/returned/ forgiven), settledOn, note. schemaVersion 8 -> 9 with a guarded createTable migration; schema exported + migration-test helper regenerated. - VarietyRepository: createPlantare / watchPlantares / watchPlantaresForVariety / setPlantareStatus / deletePlantare (soft-delete, CRDT-stamped). - Included in backups + sync: InventorySnapshot + JSON codec (round-trips isDeleted) + exportInventory/exportForSync/importInventory, so commitments survive restore and replicate LWW like every other row. Tests: v1..v8 -> v9 migration + fresh v9; repo create/list/settle/reopen/ delete; and a backup round-trip preserving a commitment. 13 green. UI (detail section + Plantares screen) follows.
45 lines
1.2 KiB
Dart
45 lines
1.2 KiB
Dart
// dart format width=80
|
|
// GENERATED BY drift_dev, DO NOT MODIFY.
|
|
// ignore_for_file: type=lint,unused_import
|
|
//
|
|
import 'package:drift/drift.dart';
|
|
import 'package:drift/internal/migrations.dart';
|
|
import 'schema_v1.dart' as v1;
|
|
import 'schema_v2.dart' as v2;
|
|
import 'schema_v3.dart' as v3;
|
|
import 'schema_v4.dart' as v4;
|
|
import 'schema_v5.dart' as v5;
|
|
import 'schema_v6.dart' as v6;
|
|
import 'schema_v7.dart' as v7;
|
|
import 'schema_v8.dart' as v8;
|
|
import 'schema_v9.dart' as v9;
|
|
|
|
class GeneratedHelper implements SchemaInstantiationHelper {
|
|
@override
|
|
GeneratedDatabase databaseForVersion(QueryExecutor db, int version) {
|
|
switch (version) {
|
|
case 1:
|
|
return v1.DatabaseAtV1(db);
|
|
case 2:
|
|
return v2.DatabaseAtV2(db);
|
|
case 3:
|
|
return v3.DatabaseAtV3(db);
|
|
case 4:
|
|
return v4.DatabaseAtV4(db);
|
|
case 5:
|
|
return v5.DatabaseAtV5(db);
|
|
case 6:
|
|
return v6.DatabaseAtV6(db);
|
|
case 7:
|
|
return v7.DatabaseAtV7(db);
|
|
case 8:
|
|
return v8.DatabaseAtV8(db);
|
|
case 9:
|
|
return v9.DatabaseAtV9(db);
|
|
default:
|
|
throw MissingSchemaException(version, versions);
|
|
}
|
|
}
|
|
|
|
static const versions = const [1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
}
|