# Dve aplikacije iz jednog koda — Consumer + Partner

BiznisPortal isporučuje **dve mobilne aplikacije iz istog codebase-a** i sa
**istog live sajta** (hibridni Capacitor model):

| | Consumer | Partner |
|---|---|---|
| Naziv | BiznisPortal | BiznisPortal Partner |
| Bundle/App ID | `rs.biznisportal.app` | `rs.biznisportal.partner` |
| Za koga | svi korisnici | klijenti koji se oglašavaju |
| Native ljuska | Home/Finder/Catalog/Jobs/Magazine… | klijentski portal `/portal/*` |
| Početni ekran | `/` (home) | `/portal` (portal sam rešava auth → `/portal/login`) |
| Auth | posetilac (opciono) | klijentska prijava (`lib/client-portal-auth.ts`) |

## Kako varijanta radi (KLJUČNO)

Oba app-a učitavaju **isti** remote sajt, pa se varijanta **ne** može
odlučiti site build env-om. Detektuje se **runtime u native ljusci** preko
Capacitor bundle id-a — `lib/native/app-variant.ts`:

- `rs.biznisportal.app` → `consumer`
- `rs.biznisportal.partner` → `partner`
- web (van native app-a) → uvek `consumer` (to je javni sajt)

`NativeLayer` grananjem montira ili consumer ljusku+ekrane ili
`PartnerShell` (tabovi → `/portal`). Nula duplikacije, jedan deploy sajta.

## Build — Consumer (default)

```bash
npm run cap:sync:consumer        # ili: npm run cap:sync
npm run native:ios:build         # simulator compile-check
npm run native:android:build
```

## Build — Partner

Razlika je SAMO Capacitor identitet (varijantu bira runtime po bundle id-u):

```bash
npm run cap:sync:partner         # appId=rs.biznisportal.partner, naziv "BiznisPortal Partner"
# iOS release (Xcode mašina, Apple nalog):
IOS_BUNDLE_IDENTIFIER=rs.biznisportal.partner \
IOS_DEVELOPMENT_TEAM=<TEAM> IOS_EXPORT_METHOD=app-store \
  npm run native:ios:release
# Android release: postavi applicationId=rs.biznisportal.partner u build flow-u
```

> Napomena: `cap sync` regeneriše `ios/`/`android/` config iz
> `capacitor.config.ts` + env-a. iOS `PRODUCT_BUNDLE_IDENTIFIER` u
> `project.pbxproj` je `rs.biznisportal.app` (consumer default); za partner
> archive prosledi `IOS_BUNDLE_IDENTIFIER=rs.biznisportal.partner`
> (`ios-release.sh` to već prihvata). Isti Apple/Play nalog vodi oba app-a
> kao zasebne aplikacije sa zasebnim App ID-evima.

## v1 obim Partner app-a

Native ljuska (top bar „BiznisPortal · Partner" badge + bottom tabovi:
Pregled / Oglasi / Upiti / Poruke / Nalog) oko POSTOJEĆIH `/portal/*`
stranica koje se renderuju hibridno u WebView-u (isti proven pristup kao
consumer detalj-stranice). Puni native overlay-i za pojedine portal ekrane
mogu doći iterativno kasnije — arhitektura (`PartnerShell` + varijanta) to
već podržava bez novog skeleta.
