feat(bj): модуль ЛК на PostgreSQL, обмен с DEPO, боевой ЛК с имитатором НРД, QUIK, НПР

- bj_exchange и «кран» Fancy убраны: данные модуля ЛК в PostgreSQL (схема lk)
- трансферные таблицы FTV_M2M: создание при установке, события, справочник участников
- сверка с DEPO: счёт, ФИО, дата рождения, ИИС по договору, квал-инвестор из опции DEPO
- боевой ЛК ЕСИА Финанс при тестовом ИШ: журнал, отказ через DEPO, статусы в ЛК
- онлайн-лицензирование в bj, план тестирования M2M для контрагента (интерактивный HTML)
- модули QUIK МНП, экспорт QUIK, НПР/УДС; документы и тестовые материалы

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-15 19:41:12 +03:00
parent 59fc774f08
commit da12a9ec1c
132 changed files with 29969 additions and 1089 deletions
+77
View File
@@ -0,0 +1,77 @@
# Design
<!-- impeccable:design-schema 1 -->
Визуальная система интерфейсов bj. Продуктовую правду держит `PRODUCT.md`.
Токены и оболочка живут в `internal/lkgateway/web/templates/layout.html`
(админка bj-server) и `cmd/bj-lk/templates.go` (клиентский ЛК).
## THESIS
Пульт управления перемещением ценных бумаг между депозитариями через НРД —
**приборная панель, а не маркетинговый дашборд**. Состояние системы и заявок
читается с одного взгляда. Отказ от generic-SaaS-грамматики: эмодзи-иконки,
лого-градиентный блоб, градиентный текст, сетка одинаковых карточек как
структура страницы — не используются.
## OWN-WORLD
«Диспетчерская депозитария». Прохладные нейтрали на свету, терминальный
near-black в тёмной теме (настоящее рабочее место оператора). Один уверенный
акцент — **индиго `--accent`** (интерактив); **MOEX-красный `--brand`**
зарезервирован строго под знак бренда и критические состояния. Знак — два узла,
соединённые мостом (продукт буквально соединяет депозитарии), inline-SVG.
Иконки — только тонкие line-иконки (stroke 1.8, inline-SVG), никаких эмодзи.
## Color
Стратегия — **Restrained** (нейтрали + один акцент), корректно для Operate.
Токены в `:root` (light) и `[data-theme="dark"]`. Обе темы обязательны и
переопределяют весь семантический набор (`--accent/--ok/--warn/--err` и их
`-weak`). Тема запоминается в localStorage; уважать `prefers-color-scheme` и
`prefers-reduced-motion`. Контраст текста — WCAG AA (body ≥4.5:1); вторичный
текст тонируется из нейтрали, не «серым наугад».
## Typography
Системный sans для UI. **Приборная подпись: все величины — моноширинными
табличными цифрами** (`--mono`, `font-variant-numeric:tabular-nums`): ID,
счётчики, время, коды, суммы, значения статов (`.num`, `.stat-value`, `.clock`,
`code`). Заголовки — плотный трекинг (до −0.03em на крупных), явная шкала веса.
## Components
- **Оболочка:** sticky-топбар (56px) = знак бренда (flex:none) + навигация
(flex:1, внутренний горизонтальный скролл, скрытый скроллбар) + правый блок
(flex:none): строка системного статуса `.sys-status` (пульс + «НРД на связи /
Эмуляция»), моно-часы, SVG-переключатель темы. На ≤1200px статус сжимается до
пульса, часы скрываются. Топбар не создаёт горизонтального скролла страницы.
- **Приборные плитки-статы** `.stat`: цветной торец слева (3px, семантический —
`.accent/.ok/.warn/.err`), моно-значение.
- **Плитки задач** `.tile`: слот `.ico` под line-SVG (не эмодзи, не градиент),
hover — подъём 2px + сдвиг стрелки.
- **Таблицы:** плотные, числовые ячейки — `.num` (табличные цифры), ID — `code`.
- **Бейджи статусов** `.badge.<state>`: семантические заливка+текст (AA).
- **Тост/алерты:** цветной акцент только сверху (`border-top`), не слева
(`border-left`/`right` >1px запрещён).
## Motion
Один авторский easing `--ease` (экспоненциальный ease-out). Живой момент —
пульс индикатора системного статуса; hover-плитки — подъём + сдвиг стрелки.
Всё отключается при `prefers-reduced-motion`.
## Refuse (из craft-floor + тезис)
Эмодзи-иконки; лого-градиентный квадрат; градиентный текст; `border-left/right`
>1px как акцент карточек; моноширинный шрифт как «костюм технологичности» вместо
данных/измерений; выбор темы по категории, а не по сцене использования.
## Scope / статус
Поднят общий слой `layout.html` (токены, оболочка, статы, плитки, таблицы,
бейджи, тост) — его наследуют все ~20 страниц админки — и флагман `admin_home`.
Клиентский ЛК (`cmd/bj-lk`) уже несёт совместимую систему (токены, тёмная тема,
доступность). Постранично ещё не подняты: `admin_setup`, `admin_help_*`,
`admin_wizard`, `admin_claim` — они наследуют систему, но их частная композиция
(плотные формы, help-простыни) ждёт отдельного прохода.