diff --git a/v2/history/ARCHITECTURE.md b/v2/history/ARCHITECTURE.md new file mode 100644 index 0000000..f584b1f --- /dev/null +++ b/v2/history/ARCHITECTURE.md @@ -0,0 +1,41 @@ +# 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 (юзер+админ)