feat(market): saved searches with in-app alerts (Wallapop-style)

Save the current market search (query + facets) and get notified when a
matching offer appears in your zone while the app is open, with a catch-up
scan on start. Adds a save affordance in the search bar, a saved-searches
list (apply/delete) with a per-search new-match badge, an AppBar entry
badged with the unseen total, and notification-tap routing to the list.
Alerts evaluate against the user's current area, dedup via seen keys, and
skip own/blocked/hidden/non-active offers. en+es strings.
This commit is contained in:
vjrj 2026-07-17 13:10:52 +02:00
parent c0cd299408
commit 93028c4933
9 changed files with 549 additions and 4 deletions

View file

@ -12,6 +12,19 @@
"remove": "Remove from favorites",
"unavailable": "No longer available"
},
"savedSearches": {
"title": "Saved searches",
"empty": "No saved searches yet. Save a search from the market and we'll tell you when something like it appears in your zone.",
"save": "Save this search",
"nameLabel": "Name this search",
"namePlaceholder": "e.g. Tomatoes near me",
"saved": "Search saved — we'll alert you about new matches nearby",
"openTooltip": "Saved searches",
"delete": "Delete",
"deleteConfirm": "Delete this saved search?",
"newMatchesBadge": "{n} new",
"alert": "New seeds near you: {label}"
},
"seedSaving": {
"title": "Saving its seed",
"subtitle": "What it takes to keep the variety true",

View file

@ -12,6 +12,19 @@
"remove": "Quitar de favoritos",
"unavailable": "Ya no está disponible"
},
"savedSearches": {
"title": "Búsquedas guardadas",
"empty": "Aún no tienes búsquedas guardadas. Guarda una búsqueda desde el mercado y te avisaremos cuando aparezca algo así en tu zona.",
"save": "Guardar esta búsqueda",
"nameLabel": "Nombra esta búsqueda",
"namePlaceholder": "p. ej. Tomates cerca",
"saved": "Búsqueda guardada — te avisaremos de lo nuevo que encaje cerca",
"openTooltip": "Búsquedas guardadas",
"delete": "Eliminar",
"deleteConfirm": "¿Eliminar esta búsqueda guardada?",
"newMatchesBadge": "{n} nuevas",
"alert": "Semillas nuevas cerca: {label}"
},
"seedSaving": {
"title": "Conservar su semilla",
"subtitle": "Lo que hace falta para mantener la variedad fiel",