tane/apps/app_seeds/lib/db
vjrj cfa1053842 feat(offers): asking price on lots, published with sale offers (schema v11)
The data model always meant sale offers to carry an informational price
(data-model §2.8, sharing-model §4.4); with offer state collapsed onto
the Lot, the price lives there. Null amount on a sell lot = 'to be
agreed' — the NIP-99 event simply omits the price tag.

- schema v11: Lots.price_amount/price_currency, guarded migration,
  schema dump + generated schema_v11 for the round-trip test
- ShareableLot/VarietyLot carry the price (sell-only in shareableLots);
  addLot/updateLot persist it and clear it when the lot leaves sale
- OffersCubit.publishLots forwards it (outbox flush picks it up free)
- lot sheet: price + currency inputs revealed only on 'For sale', with
  the €/Ğ1/hours quick-picks extracted to a shared CurrencyQuickPicks
  widget (reused by the sale sheet)
- backup JSON round-trips the new columns
- i18n share.price/priceHint in en/es/pt/ast
2026-07-11 08:00:08 +02:00
..
chat_database.dart feat(chat): usable 1:1 chat — bottom-anchored, Drift-backed, dated 2026-07-11 06:40:50 +02:00
chat_database.g.dart feat(chat): usable 1:1 chat — bottom-anchored, Drift-backed, dated 2026-07-11 06:40:50 +02:00
database.dart feat(offers): asking price on lots, published with sale offers (schema v11) 2026-07-11 08:00:08 +02:00
database.g.dart feat(offers): asking price on lots, published with sale offers (schema v11) 2026-07-11 08:00:08 +02:00
encrypted_executor.dart fix(db): load bundled SQLCipher on Linux desktop (stop startup segfault) 2026-07-07 23:45:09 +02:00
enums.dart feat(sales): local sales/purchase ledger (any currency) 2026-07-11 02:33:42 +02:00
sync_columns.dart feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
tables.dart feat(offers): asking price on lots, published with sale offers (schema v11) 2026-07-11 08:00:08 +02:00