Rozhodnutá podoba

Nenásilné omezení launche na
Ostravu

Updated: 16. července 2026· Version 4

Uživatel může zadávat cokoli odkudkoli, ale aplikace dočasně zobrazuje jen Ostravsko — vysvětleno štítkem [beta]. Omezuje se tedy zobrazování, ne vstup. Vše řízené jednou env proměnnou. Implementováno a ověřeno — backend e2e testy a manuální průchod na fyzickém zařízení.

01Shrnutí

Omezit zobrazování, ne uživatele. Řízeno jednou env proměnnou, bez zásahu do datového modelu.

02Rozhodnutá podoba

U každé volby zvolená varianta.

RozhodnutíZvolená podoba
Hranice regionubbox aglomerace Ostravska: 49,55 / 17,80 / 50,00 / 18,70 (latMin,lngMin,latMax,lngMax). Pokrývá Ostravu, Havířov, Frýdek-Místek, Karvinou, Bohumín, Opavu i Český Těšín.
Vstup obsahuBez omezení. Zadávat profily i nabídky lze odkudkoli po celé ČR.
Co se omezujeJen zobrazování ve vyhledávání. Serverově, na všech variantách discovery dotazů.
ŘízeníEnv proměnná (API + mobil). Hodnoty se musí shodovat, jinak by piny padaly mimo zamčený viewport. Nenastaveno = žádné omezení.
Komunikace uživateli[beta] štítek + bannery na místech rozhodnutí + tailored empty state. Žádné tvrdé blokování účtu.

Bbox se předává jako latMin,lngMin,latMax,lngMax. Hodnoty na API a mobilu musí být identické — mobil podle nich zamyká viewport, API podle nich filtruje obsah. Rozejdou-li se, piny skončí mimo viditelnou oblast mapy.

03Co se omezuje a co ne

Bbox jako AND podmínka do všech discovery dotazů. Přímý přístup zůstává otevřený.

Bbox se přišpendlí do všech variant discovery dotazů v obou vyhledávacích repozitářích:

DotazRepozitář
Stránkovaný seznamcandidate-search-repository.ts / job-offers-repository.ts
Count (počet výsledků)tytéž repozitáře
Map-points (piny na mapě)tytéž repozitáře
Near-me radius feedtytéž repozitáře

U skrytých kandidátů bbox testuje tutéž ~500m posunutou zobrazovací souřadnici, jakou už dnes používá viewport filtr — ne skutečnou adresu. Identita kandidáta se tím dál nevyzradí.

Info

Neomezuje se: detailové endpointy, by-ids pin-resolution ani konverzace. Firma z Prahy může legitimně napsat kandidátovi z Ostravy — přímý přístup přes odkaz či konverzaci funguje dál.

Vstup adres zůstává otevřený všude. Pickery adres si drží celorepublikové CZECHIA_BOUNDS — zamyká se výhradně procházecí mapa.

04UX komponenty

Vše se renderuje jen když je env proměnná nastavená. Jeden sdílený zdroj české copy.

Na mobilu se navíc zúží hranice posunu procházecí mapy na bbox a výchozí kamera se vycentruje na region (nahradí hardcoded Prahu, když je proměnná nastavená). fitToPoints není třeba měnit — výsledky jsou už jen z regionu.

05Proč zámek mapy nestačí

Klíčový důvod pro serverové omezení — a obchodní riziko k zohlednění.

Zámek mapy není omezení zobrazování. Dva důvody:

  1. Near-me feed kandidáta se centruje na jeho vlastní adresu, ne na viewport mapy — kandidát mimo region by jinak dál viděl celorepublikové okolí.
  2. Map-points endpoint viewport bbox neaplikuje vůbec — piny by se vracely bez ohledu na to, kam je mapa zamčená.

Proto omezení musí sedět na serveru, v dotazech. Zámek mapy je jen vizuální vrstva navrch.

Warning

Obchodní riziko: firma z Prahy může zaplatit předplatné a zveřejnit nabídku, která bude mít nulovou viditelnost (nikdo v regionu ji neuvidí ve vyhledávání). Proto banner sedí i u vytváření nabídky, ne jen jako odznak v hlavičce.

06Testování

Jeden backend e2e spec pokrývající ON cestu; stávající suity dokazují nezměněnou OFF cestu.

07Rollout a odstranění

Změna rozsahu je operace nad jednou env hodnotou plus mobilní release.

Rozšíření regionu, zúžení nebo úplné zrušení omezení = změna nebo odebrání jedné env hodnoty na API a mobilní release se změněnou hodnotou (mobilní hodnoty jsou build-time, inlinují se při buildu). Nenastavená proměnná vrací aplikaci do plně celorepublikového režimu bez jakéhokoli omezení.

Info

Žádná nová infrastruktura, žádný config endpoint, žádný zásah do datového modelu. Postupný rozjezd město po městu je otázka měnění bboxu mezi releasy.