# V2 Unified Architecture — v0.5.105 (2026-06-15) ## Как устроено ``` /v2/app — единый интерфейс │ ├── Юзер (isAdmin=false) │ └── dropdown: свои компании из IAM (profiles[]) │ ├── Админ (WZ01112, isAdmin=true) │ ├── dropdown: все компании из БД │ ├── свои помечены (личное) │ └── email помечен (админ) │ └── CRUD — одинаковый для обоих └── crud.list/add/edit/remove(clientId) ``` ## Слои | Слой | Файл | Что | |------|------|-----| | CRUD API | `v2/src/crud/index.js` | Чистые функции, clientId → БД | | SQL | `v2/src/db/queries.js` | Все запросы, транзакции | | Роутер | `v2/src/user/index.js` | Express, сессия → crud | | Шаблон | `views/v2/user.ejs` | EJS, единый для всех | ## Компании - `clientId` (W-номер) → `company_id` (внутренний PK) через `getOrCreateCompany` - По умолчанию: активный профиль из IAM (`is_active_profile=true`) - Админ может переключиться на любую компанию (`?switchTo=W***`) - Юзер — только на свои ## История версий (новые сверху) - **0.5.105** — убран toggle Администратор - **0.5.104** — (личное) у своих компаний в dropdown - **0.5.103** — WZ01112: adminMode auto-on по умолчанию - **0.5.102** — единый интерфейс /v2/app (юзер+админ)