feat(inventory): local sharing — per-lot share terms, filter and printable catalog

The local half of the original Fase 2 (no network, no Offer entity yet):
- Lot sheet gains a 'do you share it?' choice (gift/swap first, sale last,
  never the default); declaring plenty of abundance reveals it with a nudge.
- Lot lines and list tiles badge shared batches; an 'I share' filter and
  a printable PDF catalog (paper bridge for fairs) round out the view.
- Catalog PDF embeds DejaVu (Latin-ext/Cyrillic/Greek); fonts are a
  per-locale resource like the OCR packs.
This commit is contained in:
vjrj 2026-07-09 22:19:55 +02:00
parent e3ec855630
commit ba87bf2719
20 changed files with 982 additions and 36 deletions

View file

@ -80,6 +80,7 @@ class VarietyDetailCubit extends Cubit<VarietyDetailState> {
String? originPlace,
Abundance? abundance,
PreservationFormat? preservationFormat,
OfferStatus offerStatus = OfferStatus.private,
}) => _repo.addLot(
varietyId: varietyId,
type: type,
@ -91,6 +92,7 @@ class VarietyDetailCubit extends Cubit<VarietyDetailState> {
originPlace: originPlace,
abundance: abundance,
preservationFormat: preservationFormat,
offerStatus: offerStatus,
);
Future<void> updateLot({
@ -104,6 +106,7 @@ class VarietyDetailCubit extends Cubit<VarietyDetailState> {
String? originPlace,
Abundance? abundance,
PreservationFormat? preservationFormat,
OfferStatus offerStatus = OfferStatus.private,
}) => _repo.updateLot(
lotId: lotId,
type: type,
@ -115,6 +118,7 @@ class VarietyDetailCubit extends Cubit<VarietyDetailState> {
originPlace: originPlace,
abundance: abundance,
preservationFormat: preservationFormat,
offerStatus: offerStatus,
);
Future<void> deleteLot(String lotId) => _repo.softDeleteLot(lotId);