# Inspector Mobil / Planşet (PWA)

Inspector sisteminin **mobil və planşet** versiyası — ayrı, yüngül **PWA** (Progressive Web App).
Mövcud ASP.NET Core backend-inə toxunmadan, eyni JSON API-larını istifadə edir.

Stack: **Vanilla Vue 2 + Bootstrap (bundle) + axios** (əsas layihə ilə eyni), build addımı yoxdur.

## Bölmələr (12)
Obyektlərin siyahısı · Axtarış/Filter · Yeni Obyekt · Mərhələlər · Sənədlər ·
Pozuntular · Texniki baxış · Tədbirlər · Ekspertiza · Lisenziyalar · Müfəttiş xəritə · GIS Monitorinq

## İşə salmaq (lokal)
```bash
cd mobile
python3 -m http.server 8791
# brauzer: http://localhost:8791/
```
PWA olaraq quraşdırmaq üçün brauzerdə "Add to Home Screen" / "Install".

## Canlı backend-ə qoşulmaq
`js/config.js` içində:
- `apiBase` — backend ünvanı. Eyni domendə host olunsa boş saxlayın; ayrı domendə tam URL verin
  (backend-də CORS + `AllowCredentials` + bu origin tələb olunur).
- `useMock: false` — mock datanı söndürüb real endpointlərə keçir.
  (Konsoldan da: `App.setLive(true)`)

Auth **cookie** əsaslıdır (`InspectorCookieTTINDA`) — istək `withCredentials` ilə gedir.
Hər POST üçün antiforgery header (`RequestVerificationToken`) `/Settings/GetRequestVerificationToken`-dən
avtomatik alınır (`api.js` → `ensureCsrf`).

## Struktur
```
index.html          — app shell (appbar, sidebar/tabbar, "More" sheet)
manifest.webmanifest, sw.js, icons/  — PWA (offline shell cache)
css/app.css         — design system (light+dark, responsive, safe-area)
js/config.js        — API base, ENDPOINTS map, SECTIONS registry
js/api.js           — axios + CSRF + DevExtreme loadOptions + mock fallback
js/mock.js          — nümunə data (backend view-modelləri ilə eyni forma)
js/app.js           — Vue root + hash router
js/views/*.js       — bölmə komponentləri
```

## Backend endpoint uyğunluğu (`js/config.js` → ENDPOINTS)
| Bölmə | Endpoint |
|---|---|
| Obyektlər | `POST /Objects/GetObjects` |
| Lookups (filter) | `GET /Objects/GetLookups` |
| Yeni obyekt | `POST /Objects/CreateObject` |
| Mərhələlər | `POST /Objects/GetObjectStages` |
| Sənədlər | `POST /Objects/GetObjectDocuments` |
| Pozuntular | `POST /Objects/GetObjectCriterionViolations` |
| Texniki baxış | `POST /Objects/GetObjectTechnicalReviews` |
| Tədbirlər | `POST /Objects/GetObjectMeasures` · `/Report/GetMeasureRegistry` |
| Ekspertiza | `POST /Objects/GetObjectExpertiseLinks` |
| Lisenziyalar | `POST /Objects/GetObjectCompanies` |
| GIS | `POST /Report/GetH3Objects` |

## Status
UI karkası (skeleton) — bütün 12 bölmə mock data ilə işlək.
Növbəti addım: real endpointlərin bir-bir qoşulması (`useMock=false`) və xəritə üçün Leaflet/iframe inteqrasiyası.
