The testable core of the offers UI slice, transport-agnostic: - OfferMapper: pure app-sharing-intent (OfferStatus) -> network Offer/OfferType mapping; keeps price only for sales, refuses to publish private lots. - OffersCubit: discover(geohash) streams results; publish() reports the verdict; depends on the OfferTransport interface (fake in tests) and degrades gracefully offline (null transport = social layer unavailable, never throws). 8 tests green (fake in-memory transport, no relay). Screen/routing/i18n come next — they need two product decisions (coarse-area capture, relay list). |
||
|---|---|---|
| .. | ||
| ocr | ||
| export_import_service.dart | ||
| file_picker_file_service.dart | ||
| file_service.dart | ||
| offer_mapper.dart | ||
| onboarding_store.dart | ||
| recovery_sheet_service.dart | ||
| share_catalog_service.dart | ||
| social_service.dart | ||