Merge pull request 'Устаревшая документация: модель v5.17, диаграммы по частям, сделанное — в сделанное (#60)' (#61) from feat/60-outdated-docs into main

Reviewed-on: #61
This commit is contained in:
aep 2026-10-07 22:38:15 +03:00
commit 4ca1c373b5
34 changed files with 3136 additions and 2707 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@
.bounded
dev/.env
.venv/
__pycache__/

View File

@ -4,8 +4,10 @@ VENV := .venv
# Если окружение создано (`make venv`) — берём его интерпретатор, иначе системный python3 (в нём должен быть jsonschema)
PY := $(if $(wildcard $(VENV)/bin/python),$(CURDIR)/$(VENV)/bin/python,python3)
CHANGE ?= slice-0-skeleton
# Текущая версия модели данных — по ней рисуются диаграммы (make diagrams)
DBML ?= model/data-model-v5.17.dbml
.PHONY: venv validate-contracts validate-openspec check
.PHONY: venv validate-contracts validate-openspec check diagrams
# Единственная зависимость скриптов проверки контракта — jsonschema
venv:
@ -21,3 +23,7 @@ validate-openspec:
openspec validate $(CHANGE) --strict
check: validate-contracts validate-openspec
# Диаграммы model/diagrams/part01…09.{svg,png} из $(DBML); нужен npx (Node.js), зависимостей Python нет
diagrams:
python3 scripts/gen_model_diagrams.py $(DBML)

View File

@ -67,7 +67,7 @@ git remote add origin <url-arm-core> && git push -u origin main
| Слой | Где | Статус | Правило для агента |
|---|---|---|---|
| Модель данных | `docs/model/data-model-v5.14.dbml` | стабильный, версионируется | единственный источник имён и структур |
| Модель данных | `docs/model/data-model-v5.17.dbml` | стабильный, версионируется | единственный источник имён и структур |
| Правила домена | `docs/context/05-domain-rules.md` | курируемый — пишет человек/агент по итогам ревью | **единственный вход алгоритмов в код**; из ТЗ напрямую не кодируем |
| Открытые вопросы | `docs/context/07-open-questions.md` | живой реестр | каждое допущение в коде — `ASSUMPTION(OQ-nn)` |
| Экспорт ТЗ | `docs/source/tz/` | снимок на дату из `docs/source/tz/_export.md` | читать для контекста; расхождение с §05 → вопрос, не код |

View File

@ -2,8 +2,9 @@
Файлы: `docs/model/data-model-v5.17.dbml` (источник истины), `docs/model/entities-v5.17.md` (смысл таблиц; предыдущие
версии `data-model-v5.13…v5.16.dbml` и `entities-v5.13…v5.16.md` остаются как история),
`docs/model/diagrams/part01…09.svg` (диаграммы v5.12 — на одну версию старше: нет `permission`/`role_permission`,
нет `document`, есть `osv_group_schema`, нет `related_group_member.kind`; читать с поправкой на changelog v5.13…v5.17 в шапке DBML).
`docs/model/diagrams/part01…09.{svg,png}` (диаграммы v5.17 по частям из таблицы ниже; перерисовываются из DBML командой
`make diagrams` в корне репозитория docs — скрипт `scripts/gen_model_diagrams.py`, нужен npx; при новой версии DBML
обновить `DBML` в Makefile, а новую таблицу — добавить в раскладку частей скрипта и в эту таблицу).
## Девять частей модели

View File

@ -1,4 +1,4 @@
# 05. Правила предметной области (выжимка из ТЗ, имена — v5.15)
# 05. Правила предметной области (выжимка из ТЗ, имена — v5.17)
Каждый раздел: источник в ТЗ → правило → где в модели. Где ТЗ молчит или противоречит — пометка **[открыто]** и
ссылка на `07-open-questions.md`.

View File

@ -194,7 +194,8 @@ arm-tabular-parser#11, OQ-131…OQ-135. ИНН организаций в шап
- `Анализ Русский бисквит_заемщик 01102025.xlsx`, `Анализ Счастливочная_поручитель 01102025.xlsx` — макросные книги
«Альбома инструментов и стандартов кредитования» (БлокТ32): листы «Отчетность», «Экспресс-анализ», «ЗАКЛ_лимит»,
«ЗАКЛ_сделка», «П2_ОД-2967», «Профсуждение» — контекст для будущей формы 276-ОД, не для первых срезов.
- `diagrams_v5.12.zip` → `docs/model/diagrams/` (part01…09 svg/png).
- `diagrams_v5.12.zip` → `docs/model/diagrams/` (part01…09 svg/png) — исходная поставка; с v5.17 диаграммы перерисовываются
из DBML (`make diagrams` в docs, см. `04-data-model-guide.md`).
## 6. Раскладка репозитория `arm-ka-fixtures` (workspace `fixtures/`)

View File

@ -48,10 +48,10 @@
| Файл | Что |
|---|---|
| `data-model-v5.14.dbml` | источник истины; changelog v5.1…v5.14 в шапке; блоки «ИСТОЧНИК» над каждой таблицей (v5.13 остаётся рядом как история) |
| `entities-v5.14.md` | описание сущностей по частям 01–09, таблицы «Что изменилось в v5.14 / v5.13», сценарий «как читать модель», открытые вопросы (v5.13 остаётся как история) |
| `diagrams/part01…09.{svg,png}` | диаграммы v5.12 (на шаг старше) |
| `data-model-part1_4.dbml` | v4 часть 1 — историческое |
| `data-model-v5.17.dbml` | источник истины; changelog v5.1…v5.17 в шапке; блоки «ИСТОЧНИК» над каждой таблицей (v5.13…v5.16 остаются рядом как история) |
| `entities-v5.17.md` | описание сущностей по частям 01–09, таблицы «Что изменилось» по версиям, сценарий «как читать модель», открытые вопросы (v5.13…v5.16 остаются как история) |
| `diagrams/part01…09.{svg,png}` | диаграммы v5.17 по частям; перерисовываются `make diagrams` (`scripts/gen_model_diagrams.py`) |
| `source/tz/data-model-part1_4.dbml` (лежит не в `model/`, а в экспорте ТЗ) | v4 часть 1 — историческое |
## Макет UI

View File

@ -8,7 +8,7 @@
`tasks.md`), сквозная часть — change в `docs/`; задачи — issues в Gitea; PR — по одному на репозиторий. Jira-эпики
пользователя маппятся на срезы (пользователь ведёт соответствие сам).
## Срез 0 — Скелет (2–3 дня, три репозитория + docs)
## Срез 0 — Скелет (2–3 дня, три репозитория + docs) — **завершён 04.10.2026**
- Три репозитория из нулевого коммита шаблона команды; соглашения шаблона — в `03-architecture.md` и в `CLAUDE.md`
каждого репозитория. **Первая задача агента — прочитать шаблон и дополнить документы.** (Сделано: раздел «Соглашения
@ -75,7 +75,8 @@ UI справочника по макету) разделён: всё, кром
## Срез 2 — Загрузка файлов + табличный парсер (ОСВ, ББ, ОФР из Excel) — самый рискованный, делать рано
Решение владельца 05.10.2026: срез делится на четыре подсреза со своими change'ами и PR; сначала **только парсер ОСВ**.
Порядок: 2a → 2b → 2c → 2d. DoD среза в целом (без правил под конкретный файл, без координат в коде парсера) — в конце раздела.
Порядок: 2a → 2b → 2c → 2d. Change'и закрытых срезов заархивированы: пути ниже вида `<repo>/openspec/changes/<id>` теперь
`<repo>/openspec/changes/archive/<дата>-<id>`. DoD среза в целом (без правил под конкретный файл, без координат в коде парсера) — в конце раздела.
### Срез 2a — Парсер ОСВ (`tabular-parser`) — закрыт 05.10.2026 (tabular-parser #6, архив #8; docs #10, архив #15; fixtures #5)
@ -162,6 +163,8 @@ Change'и: `arm-core/openspec/changes/slice-2c-osv-ingest` (issue arm-core#14,
### Срез 2d — UI «Первичные документы»
**Статус:** API готов (Срезы 2c, 3b, arm-core #42); UI — у отдельного исполнителя фронта по `dev/frontend-api-guide.md`.
- Панель «Первичные документы», окно загрузки, таблица ОСВ с деревом строк и подсветкой нераспознанных контрагентов.
**DoD среза 2 целиком:** все реальные файлы и вся синтетика проходят **без единого правила под конкретный файл или
@ -189,9 +192,9 @@ without discussion» №1–№35). Реализация — по `05-domain-rul
### Срез 3b — маппинг форм, проверки, подтверждение и API до сводной ОСВ (arm-core)
**Статус: бэкенд и API реализованы в arm-core, октябрь 2026; UI экрана «Проверка распознавания» в срез не входит.** Объём по
**Статус: закрыт 07.10.2026** (arm-core #39, архив #41; docs #49; follow-up arm-core#40); UI экрана «Проверка распознавания» в срез не входит. Объём по
решению владельца 07.10.2026: весь API пути пользователя до сводной ОСВ включительно. Issue arm-core#36, docs#48; спецификация —
`arm-core/openspec/changes/slice-3b-statements-api/` (design D-1…D-14, «Decisions made without discussion» №1–№22); документы
`arm-core/openspec/changes/archive/2026-10-07-slice-3b-statements-api/` (design D-1…D-14, «Decisions made without discussion» №1–№22); документы
workspace — bounded-PR в docs (без сквозного change: DBML и контракт не менялись).
**Сделано (по факту):**
@ -220,10 +223,10 @@ workspace — bounded-PR в docs (без сквозного change: DBML и ко
## Срез 4 — Консолидация: карточка, версии, периметр, периоды, сводная ОСВ
**Статус: реализован в arm-core (бэкенд + API + экспорт xlsx), октябрь 2026; UI — отдельный исполнитель.** Объём по решению
**Статус: закрыт 07.10.2026** (arm-core #19, архив #20; docs #20, архив #21; follow-up arm-core#21): бэкенд + API + экспорт xlsx; UI — отдельный исполнитель. Объём по решению
владельца 06.10.2026: бэкенд, API, экспорт xlsx. Issue arm-core#18, docs#19; спецификация —
`arm-core/openspec/changes/slice-4-consolidation/` (design D-1…D-16, «Decisions made without discussion» №1–№85),
документный change — `docs/openspec/changes/slice-4-consolidation/`.
`arm-core/openspec/changes/archive/2026-10-06-slice-4-consolidation/` (design D-1…D-16, «Decisions made without discussion» №1–№85),
документный change — `docs/openspec/changes/archive/2026-10-06-slice-4-consolidation/`.
**Сделано (по факту):**
- DBML v5.16: `osv_entry.counterparty_match_kind` + enum `counterparty_match_kind` (миграция `0004_dbml_v5_16`, backfill).

View File

@ -9,8 +9,8 @@
1. `CLAUDE.md` (workspace) и `docs/context/00-workspace-layout.md` — как устроена рабочая область, статус аналитики, макет.
2. `docs/context/01-project-overview.md`, `02-glossary.md` — предметная область.
3. `docs/context/03-architecture.md`, `04-data-model-guide.md`, затем **весь** `docs/model/data-model-v5.14.dbml` и
`docs/model/entities-v5.14.md`.
3. `docs/context/03-architecture.md`, `04-data-model-guide.md`, затем **весь** `docs/model/data-model-v5.17.dbml` и
`docs/model/entities-v5.17.md`.
4. `docs/context/05-domain-rules.md` — алгоритмы (особенно §1.0 и §12 — парсеры ищут структуру по содержимому);
`06-test-data.md`; `07-open-questions.md`; `10-user-journey.md`; `09-delivery-plan.md`.
5. `arm-core/`, `tabular-parser/`, `scan-gateway/` — три репозитория, развёрнутые из нулевого коммита шаблона команды,
@ -37,7 +37,7 @@ NATS, MinIO, эмулятор ИС Сканирование), контракт `
`07-open-questions.md`; если нужен ответ для среза — делай допущение по правилам из этого файла.
Ограничения на всё время работы:
- имена таблиц, колонок и enum'ов — ровно как в DBML v5.14; поля, которых нет в DBML, не изобретать;
- имена таблиц, колонок и enum'ов — ровно как в DBML v5.17; поля, которых нет в DBML, не изобретать;
- алгоритмы — только из `05-domain-rules.md`; из страниц ТЗ напрямую не кодировать;
- парсеры: никаких координат ячеек, букв колонок, имён листов и номеров строк в коде — структура по содержимому,
синонимы в `rules/*.yaml`; фикстуры — регрессия, не спецификация;

View File

@ -417,7 +417,7 @@ postgres nats minio`, затем `make test-integration` (или `make check-ful
- **Образы MinIO неофициальные.** Официальные `minio/minio` и `minio/mc` недоступны (Docker Hub — denied, на quay.io нет
нужных тегов), поэтому в compose стоят `alpine/minio:RELEASE.2025-10-15T17-29-55Z` и
`bitnamilegacy/minio-client:2025.7.21`, а сервис `minio` запущен с `user: "0:0"` (иначе образ не пишет в свежий том) —
только для dev. Решения: [`design.md`](../openspec/changes/slice-0-skeleton/design.md), раздел
только для dev. Решения: [`design.md`](../openspec/changes/archive/2026-10-04-slice-0-skeleton/design.md), раздел
«Decisions made without discussion», решения №16–17. Замена на официальные образы — две строки `image:` в
`docker-compose.yml` (и удаление `user: "0:0"`).
- **Безопасность.** По умолчанию порты публикуются только на `127.0.0.1` (`BIND_ADDR`), снаружи машины они недоступны.

View File

@ -1,7 +1,7 @@
# Контракт API Среза 3b (формы ББ/ОФР и путь пользователя до сводной ОСВ)
Источник — реальный код arm-core (`api/src/schemas/statements.py`, `schemas/comments.py`, `api/endpoints/files/statements.py`,
`comments.py`, `read.py`, `users.py`; Swagger — `/docs`) и спека `arm-core/openspec/changes/slice-3b-statements-api/` (design
`comments.py`, `read.py`, `users.py`; Swagger — `/docs`) и спека `arm-core/openspec/changes/archive/2026-10-07-slice-3b-statements-api/` (design
D-1…D-14, «Decisions made without discussion» №1–№22). Правила предметной области — `context/05-domain-rules.md` §7, §9.3, §9.5
(п. 2, 4, 9, 10); экраны — `context/10-user-journey.md` (пути 1–2, шаг 3.1), номера в `[…]` — снимки макета (`mockup/INDEX.md`).
Общие правила (префикс, токен, формат ошибок, права) — как в `dev/api-contract-slice-4.md` §1; здесь — то, что добавил Срез 3b.

View File

@ -1,7 +1,7 @@
# Контракт API Среза 4 (консолидация) для разработчика фронта
Источник — реальная схема `GET /openapi.json` arm-core (ветка `feat/18-slice-4-consolidation`, Swagger — `/docs`); коды ошибок и
нюансы сверены с кодом и спекой `arm-core/openspec/changes/slice-4-consolidation/` (design D-1…D-16, решения №1–№81+).
нюансы сверены с кодом и спекой `arm-core/openspec/changes/archive/2026-10-06-slice-4-consolidation/` (design D-1…D-16, решения №1–№81+).
Правила предметной области — `context/05-domain-rules.md` §2, §3, §9.1, §10; экраны — `context/10-user-journey.md`
(пути 2 и 3), номера в `[…]` — снимки макета (`mockup/INDEX.md`). Здесь — только то, что нужно, чтобы писать клиент.

View File

@ -2,7 +2,7 @@
Конфигураций CI в репозиториях нет (в Gitea CI не используется, пайплайн платформы банка вне зоны проекта), поэтому
проверки выполняются локально одной командой перед каждым PR. Требования — spec `quality-checks`
(`openspec/changes/slice-0-skeleton/specs/quality-checks/spec.md`), решение D-8.
(`openspec/specs/quality-checks/spec.md`), решение D-8 (`openspec/changes/archive/2026-10-04-slice-0-skeleton/design.md`).
Все цели запускаются **из корня репозитория сервиса** (`arm-core`, `tabular-parser`, `scan-gateway`); рецепты сами
переходят в `api/` и используют окружение `api/.venv`. Инфраструктура compose — `docs/dev/docker-compose.yml`
@ -57,7 +57,7 @@ docker compose -f ../docs/dev/docker-compose.yml --project-name arm-ka run --rm
Для `arm-core` дополнительно:
- `dbml-check` — `python scripts/check_dbml_vs_orm.py ../../docs/model/data-model-v5.14.dbml` (путь от `api/`;
- `dbml-check` — `python scripts/check_dbml_vs_orm.py ../../docs/model/data-model-v5.17.dbml` (путь от `api/`, по умолчанию — переменная `DBML` Makefile, она указывает на текущую версию модели;
другой — `make dbml-check DBML=<путь относительно api/>`): ORM обязана совпадать с DBML; расхождения печатаются
построчно, код 1.
- Цикл миграций «`alembic upgrade head` → `alembic downgrade base` → `alembic upgrade head`» на чистой БД, пустой

View File

@ -1,6 +1,7 @@
# Гайд фронтенд-разработчика: API arm-core
Состояние — `arm-core` на `main` от 07.10.2026 (коммит `f4a7806`: после PR #46 «API до сводной ОСВ» и #51 «Основной РФ объектом»).
Состояние — `arm-core` на `main` от 07.10.2026 (коммит `99669cd`: после PR #46 «API до сводной ОСВ», #51 «Основной РФ объектом»,
#52 «КПП ЮЛ» и #53 «Схема БД настройкой»).
Схема сверена с `GET /openapi.json` (62 операции на 49 путях), коды ошибок — с `api/src/services/*` и `arm-core/README.md` «Ошибки API».
Это **точка входа**: здесь всё, что нужно, чтобы писать клиент, — подключение, общие правила, каждый маршрут, ошибки, сценарии
@ -28,6 +29,8 @@
| Когда, PR | Что изменилось в API | Что сделать в клиенте |
|---|---|---|
| 07.10, arm-core #52 (#45) | **КПП ЮЛ** (DBML v5.17, `context/05-domain-rules.md` §13.5): поле `kpp: string \| null` в `LegalEntityCreate`, `LegalEntityUpdate`, `LegalEntityOut`/`Detail`, `LegalEntityHistoryOut`. Формат — 9 символов (4 цифры, 2 цифры или латинские A–Z, 3 цифры; пробелы убираются, буквы — в верхний регистр), иначе 422 `INVALID_KPP`; у ИП КПП запрещён (422), у ЮЛ необязателен; уникален только ИНН. Поиск `q` в списке ЮЛ ищет и по КПП; смена типа на ИП у ЮЛ с КПП без очистки КПП — 422 `INVALID_KPP`; `kpp: null` в `PATCH` очищает КПП; в импорте ЕЦП — необязательная колонка «КПП» и код строки `INVALID_KPP` | поле КПП в формах ЮЛ и в карточке; в форме ИП поле скрыть; ошибку `INVALID_KPP` — на поле «КПП» |
| 07.10, arm-core #53 (#38) | Схема БД задаётся настройкой `DB_SCHEMA` — **API не изменился** | — |
| 07.10, arm-core #51 (#47) | «Основной РФ» приходит **объектом** `{id, name, is_head_office}` или `null`: `regional_office` в `LegalEntityOut`/`Detail`/`HistoryOut`, `base_regional_office` в `CompanyGroupOut`/`HistoryOut` (в т. ч. в ответах `POST`/`PATCH`/`move`/`withdraw`/`archive`). Поля `*_id` остались; неактивный филиал тоже отдаётся; входные схемы прежние (`*_id`) | брать имя филиала из объекта, а не склеивать с `GET /directories/regional-offices` |
| 07.10, arm-core #50 (#43), #49 (#44) | Зависимости под контур (PyJWT 2.8) и настройки из OpenBao — **API не изменился** | — |
| 07.10, arm-core #46 (#42) | `POST /consolidations` принимает необязательный `legal_entity_ids` (≤ 500): выбранный в модалке [42] периметр. Без поля или `null` — состав ГСК; `[]` — явный пустой периметр → 422 `PERIMETER_TOO_SMALL`; ЮЛ не из ГК → 422 `ENTITY_NOT_IN_GROUP` | модалка [42]: все ЮЛ ГК, отмечены члены ГСК, отправлять отмеченные (§6, строка [42]) |
@ -251,7 +254,7 @@ UI прячет элементы по `GET /me → permissions` (объедин
| `GET /directories/company-groups/{group_id}/history` | — | `CompanyGroupHistoryOut[]` (прошлые снимки, новые первыми) |
| `GET /directories/company-groups/{company_group_id}/related-groups` | — | `RelatedGroupOut[]` — ГСК и ГСЗ ГК (`kind`), по имени, с `members_count` |
| `GET /directories/related-groups/{group_id}` | — | `RelatedGroupDetail` (+ `members[] {legal_entity_id, inn, name, valid_from}` — текущий состав) |
| `GET /directories/legal-entities` | `company_group_id`, `outside_group` (монозаёмщики), `inn` (точно), `q` (подстрока имени / ИНН), `closed`, `limit`, `offset` | `Page[LegalEntityOut]` |
| `GET /directories/legal-entities` | `company_group_id`, `outside_group` (монозаёмщики), `inn` (точно), `q` (подстрока имени / ИНН / КПП), `closed`, `limit`, `offset` | `Page[LegalEntityOut]` |
| `GET /directories/legal-entities/{entity_id}` | — | `LegalEntityDetail` (+ `memberships[]` в ГСК/ГСЗ, `aliases[]`) |
| `GET /directories/legal-entities/{entity_id}/history` | — | `LegalEntityHistoryOut[]` (снимки с `event_type` и `effective_date`, новые первыми) |
@ -273,8 +276,8 @@ UI прячет элементы по `GET /me → permissions` (объедин
| `POST /directories/company-groups` | EDIT | `{name (1–500), crm_id?, base_regional_office_id?}` | 201 `CompanyGroupOut` (код `GK-NNNNNN` назначает сервер) | 422 `OFFICE_NOT_FOUND`, 422 `OFFICE_NOT_ALLOWED` (филиал не свой), 409 `CRM_ID_EXISTS` |
| `PATCH /directories/company-groups/{group_id}` | EDIT | `{name?, crm_id?, base_regional_office_id?}` (частично) | `CompanyGroupOut` | те же |
| `POST /directories/company-groups/{group_id}/archive` · `/unarchive` | EDIT | — | `CompanyGroupOut` (повтор — без изменений) | — |
| `POST /directories/legal-entities` | EDIT | `{inn, entity_type, name, company_group_id?, regional_office_id?, crm_id?}`; без `company_group_id` — монозаёмщик | 201 `LegalEntityOut` | 422 `INVALID_INN` (ЮЛ — 10 цифр, ИП — 12; пробелы внутри убираются), 404 (ГК не видна), 409 `INN_EXISTS`, 409 `CRM_ID_EXISTS`, 422 `OFFICE_NOT_FOUND` / `OFFICE_NOT_ALLOWED` — в этом порядке |
| `PATCH /directories/legal-entities/{entity_id}` | EDIT | `{name?, entity_type?, crm_id?, regional_office_id?}`; ИНН и ГК так не меняются | `LegalEntityOut` | 422 `INVALID_INN` (ИНН не подходит новому типу), 422 `OFFICE_*`, 409 `CRM_ID_EXISTS`; `name`/`entity_type: null` — 422 массивом |
| `POST /directories/legal-entities` | EDIT | `{inn, entity_type, name, kpp?, company_group_id?, regional_office_id?, crm_id?}`; без `company_group_id` — монозаёмщик | 201 `LegalEntityOut` | 422 `INVALID_INN` (ЮЛ — 10 цифр, ИП — 12; пробелы внутри убираются), 422 `INVALID_KPP` (формат или КПП у ИП), 404 (ГК не видна), 409 `INN_EXISTS`, 409 `CRM_ID_EXISTS`, 422 `OFFICE_NOT_FOUND` / `OFFICE_NOT_ALLOWED` — в этом порядке |
| `PATCH /directories/legal-entities/{entity_id}` | EDIT | `{name?, entity_type?, crm_id?, regional_office_id?, kpp?}`; `kpp: null` очищает КПП; ИНН и ГК так не меняются | `LegalEntityOut` | 422 `INVALID_INN` (ИНН не подходит новому типу), 422 `INVALID_KPP` (формат; КПП у ИП, в т. ч. смена типа на ИП без очистки КПП), 422 `OFFICE_*`, 409 `CRM_ID_EXISTS`; `name`/`entity_type: null` — 422 массивом |
| `POST /directories/legal-entities/{entity_id}/move` | EDIT | `{company_group_id, effective_date}` (дата ≥ сегодня по Москве) | `LegalEntityOut`; текущие членства ГСК/ГСЗ закрываются | 422 `EFFECTIVE_DATE_IN_PAST`, 404 (ГК назначения не видна), 409 `LEGAL_ENTITY_CLOSED`, 409 `SAME_COMPANY_GROUP` |
| `POST /directories/legal-entities/{entity_id}/withdraw` | EDIT | `{event: "CLOSE" \| "REMOVE_FROM_GROUP", effective_date, comment?}` | `LegalEntityOut` | 422 `EFFECTIVE_DATE_IN_PAST`, 409 `ALREADY_CLOSED`, 409 `NOT_IN_COMPANY_GROUP` |
| `POST /directories/legal-entities/{entity_id}/aliases` | EDIT | `{alias (1–500)}` — как в ОСВ | 201 `AliasOut {id, alias, normalized_alias, created_at}` | 422 `EMPTY_ALIAS`, 409 `ALIAS_EXISTS`, 409 `ALIAS_TAKEN` (`legal_entity_id` владельца) |
@ -443,7 +446,7 @@ UI прячет элементы по `GET /me → permissions` (объедин
Поля с `?` могут быть `null`, но ключ присутствует всегда. Полные схемы — `/openapi.json` и контракты по областям.
- **`CompanyGroupOut`** `{id, code, crm_id?, name, base_regional_office_id?, base_regional_office? {id, name, is_head_office}, is_archived, valid_from, legal_entities_count, created_at?, updated_at?}`.
- **`LegalEntityOut`** `{id, inn, crm_id?, entity_type?, name, company_group_id?, regional_office_id?, regional_office? {id, name, is_head_office}, close_date?, valid_from, created_at?, updated_at?, documents_count, outside_group, closed}`; **`LegalEntityDetail`** — + `memberships[] {related_group_id, code, kind, name, valid_from}`, `aliases[] {id, alias, normalized_alias, created_at?}`.
- **`LegalEntityOut`** `{id, inn, kpp?, crm_id?, entity_type?, name, company_group_id?, regional_office_id?, regional_office? {id, name, is_head_office}, close_date?, valid_from, created_at?, updated_at?, documents_count, outside_group, closed}`; **`LegalEntityDetail`** — + `memberships[] {related_group_id, code, kind, name, valid_from}`, `aliases[] {id, alias, normalized_alias, created_at?}`.
- **`RelatedGroupOut`** `{id, code, company_group_id, kind, name, created_date?, members_count}`; **`RelatedGroupDetail`** — + `members[] {legal_entity_id, inn, name, valid_from}`.
- **`FileOut`** `{id, legal_entity_id, original_name?, file_type, status, version_no, size_bytes?, content_hash?, uploaded_at?, uploaded_by?, superseded_by_file_id?, job?, documents[]}`; **`JobBrief`** `{id, status, error_code?, error_message?, mapping_error?, warnings[], mapping_warnings[], finished_at?}`; **`DocumentBrief`** `{id, document_type, osv_account_code?, period_year?, period_quarter?, is_cumulative?, status, period_check?, counterparty_check?, locator?, comments_count}`.
- **`DocumentOut`** = поля `DocumentBrief` + `{file_id, legal_entity_id, confirmed_by?, confirmed_at?, group_schema? [{type, name?, has_inn?}], warnings[]}`.
@ -558,6 +561,7 @@ async function download(path: string, fallbackName: string): Promise<void> {
| `OFFICE_NOT_FOUND` | 422 | ГК, ЮЛ, пользователь: филиала нет | — | ошибка поля «Филиал» |
| `OFFICE_NOT_ALLOWED` | 422 | ГК/ЮЛ: пользователь филиала закрепляет за чужим филиалом | — | ошибка поля «Филиал» |
| `INVALID_INN` | 422 | ЮЛ (10/12 цифр по типу), шапка формы (10 или 12) | — | ошибка поля «ИНН» |
| `INVALID_KPP` | 422 | ЮЛ: формат КПП, КПП у ИП (в т. ч. смена типа на ИП); в импорте — код строки отчёта | — | ошибка поля «КПП» |
| `EFFECTIVE_DATE_IN_PAST` | 422 | перевод/вывод ЮЛ | — | ошибка поля «Дата» |
| `EMPTY_ALIAS` | 422 | алиас из одних ОПФ и знаков | — | ошибка поля |
| `DIFFERENT_COMPANY_GROUP` | 422 | член ГСК/ГСЗ из другой ГК | — | сообщение |
@ -627,8 +631,6 @@ async function download(path: string, fallbackName: string): Promise<void> {
| Задача | Что поменяется для фронта | Как подготовиться |
|---|---|---|
| arm-core #45 — **КПП ЮЛ** (модель уже утверждена: DBML v5.17, docs #54 слит; правила — `context/05-domain-rules.md` §13.5) | Новое поле `kpp: string \| null` в `LegalEntityCreate`, `LegalEntityUpdate`, `LegalEntityOut`/`Detail`, `LegalEntityHistoryOut`. Формат — 9 символов (4 цифры, 2 цифры или латинские A–Z, 3 цифры), иначе 422 `INVALID_KPP`; у ИП КПП запрещён (422), у ЮЛ необязателен; уникален только ИНН. Поиск `q` в списке ЮЛ будет искать и по КПП; смена типа на ИП у ЮЛ с КПП без очистки КПП — 422 `INVALID_KPP`; очистить КПП у ЮЛ можно (`kpp: null`); в импорте ЕЦП — необязательная колонка «КПП» и код строки `INVALID_KPP` | заложить поле и код ошибки; в форме ИП поле КПП скрыть |
| arm-core #38 | Схема БД настройкой — **API не меняется** | — |
| OQ-54 — SSO РАИСА | Меняется только получение токена (вместо dev-формы) | держать слой получения токена изолированным (`frontend-auth-guide.md` §9) |
Состояние этих задач — в Gitea (`RSHB/arm-core`, `RSHB/arm-ka-docs`); после слияния каждой этот раздел переезжает в §1.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 659 KiB

After

Width:  |  Height:  |  Size: 509 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 323 KiB

View File

@ -4,187 +4,385 @@
<!-- Generated by graphviz version 2.47.0 (20210316.0004)
-->
<!-- Title: dbml Pages: 1 -->
<svg width="1910pt" height="1310pt"
viewBox="0.00 0.00 1909.99 1310.05" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1306.05)">
<svg width="2056pt" height="2852pt"
viewBox="0.00 0.00 2055.66 2851.76" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2847.76)">
<title>dbml</title>
<!-- business_segment -->
<g id="business_segment" class="node">
<title>business_segment</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1607.13" cy="-622.53" rx="294.73" ry="172.57"/>
<polygon fill="#29235c" stroke="transparent" points="1401.13,-682.53 1401.13,-742.53 1814.13,-742.53 1814.13,-682.53 1401.13,-682.53"/>
<polygon fill="none" stroke="#29235c" points="1401.13,-682.53 1401.13,-742.53 1814.13,-742.53 1814.13,-682.53 1401.13,-682.53"/>
<text text-anchor="start" x="1412.01" y="-703.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;business_segment &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1401.13,-622.53 1401.13,-682.53 1814.13,-682.53 1814.13,-622.53 1401.13,-622.53"/>
<polygon fill="none" stroke="#29235c" points="1401.13,-622.53 1401.13,-682.53 1814.13,-682.53 1814.13,-622.53 1401.13,-622.53"/>
<text text-anchor="start" x="1539.17" y="-643.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DKB &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1401.13,-562.53 1401.13,-622.53 1814.13,-622.53 1814.13,-562.53 1401.13,-562.53"/>
<polygon fill="none" stroke="#29235c" points="1401.13,-562.53 1401.13,-622.53 1814.13,-622.53 1814.13,-562.53 1401.13,-562.53"/>
<text text-anchor="start" x="1525.84" y="-583.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DMSB &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1401.13,-502.53 1401.13,-562.53 1814.13,-562.53 1814.13,-502.53 1401.13,-502.53"/>
<polygon fill="none" stroke="#29235c" points="1401.13,-502.53 1401.13,-562.53 1814.13,-562.53 1814.13,-502.53 1401.13,-502.53"/>
<text text-anchor="start" x="1547.18" y="-523.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DM &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1399.63,-501.53 1399.63,-743.53 1814.63,-743.53 1814.63,-501.53 1399.63,-501.53"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1752.79" cy="-2164.24" rx="294.73" ry="172.57"/>
<polygon fill="#29235c" stroke="transparent" points="1546.79,-2224.24 1546.79,-2284.24 1959.79,-2284.24 1959.79,-2224.24 1546.79,-2224.24"/>
<polygon fill="none" stroke="#29235c" points="1546.79,-2224.24 1546.79,-2284.24 1959.79,-2284.24 1959.79,-2224.24 1546.79,-2224.24"/>
<text text-anchor="start" x="1557.67" y="-2245.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;business_segment &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1546.79,-2164.24 1546.79,-2224.24 1959.79,-2224.24 1959.79,-2164.24 1546.79,-2164.24"/>
<polygon fill="none" stroke="#29235c" points="1546.79,-2164.24 1546.79,-2224.24 1959.79,-2224.24 1959.79,-2164.24 1546.79,-2164.24"/>
<text text-anchor="start" x="1684.83" y="-2185.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DKB &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1546.79,-2104.24 1546.79,-2164.24 1959.79,-2164.24 1959.79,-2104.24 1546.79,-2104.24"/>
<polygon fill="none" stroke="#29235c" points="1546.79,-2104.24 1546.79,-2164.24 1959.79,-2164.24 1959.79,-2104.24 1546.79,-2104.24"/>
<text text-anchor="start" x="1671.5" y="-2125.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DMSB &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1546.79,-2044.24 1546.79,-2104.24 1959.79,-2104.24 1959.79,-2044.24 1546.79,-2044.24"/>
<polygon fill="none" stroke="#29235c" points="1546.79,-2044.24 1546.79,-2104.24 1959.79,-2104.24 1959.79,-2044.24 1546.79,-2044.24"/>
<text text-anchor="start" x="1692.84" y="-2065.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DM &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1545.29,-2043.24 1545.29,-2285.24 1960.29,-2285.24 1960.29,-2043.24 1545.29,-2043.24"/>
</g>
<!-- permission_object -->
<g id="permission_object" class="node">
<title>permission_object</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1752.79" cy="-1087.24" rx="288.5" ry="384.83"/>
<polygon fill="#29235c" stroke="transparent" points="1550.79,-1297.24 1550.79,-1357.24 1954.79,-1357.24 1954.79,-1297.24 1550.79,-1297.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-1297.24 1550.79,-1357.24 1954.79,-1357.24 1954.79,-1297.24 1550.79,-1297.24"/>
<text text-anchor="start" x="1561.64" y="-1318.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;permission_object &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-1237.24 1550.79,-1297.24 1954.79,-1297.24 1954.79,-1237.24 1550.79,-1237.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-1237.24 1550.79,-1297.24 1954.79,-1297.24 1954.79,-1237.24 1550.79,-1237.24"/>
<text text-anchor="start" x="1623.01" y="-1258.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DIRECTORY &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-1177.24 1550.79,-1237.24 1954.79,-1237.24 1954.79,-1177.24 1550.79,-1177.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-1177.24 1550.79,-1237.24 1954.79,-1237.24 1954.79,-1177.24 1550.79,-1177.24"/>
<text text-anchor="start" x="1624.8" y="-1198.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DOCUMENT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-1117.24 1550.79,-1177.24 1954.79,-1177.24 1954.79,-1117.24 1550.79,-1117.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-1117.24 1550.79,-1177.24 1954.79,-1177.24 1954.79,-1117.24 1550.79,-1117.24"/>
<text text-anchor="start" x="1584.78" y="-1138.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;CONSOLIDATION &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-1057.24 1550.79,-1117.24 1954.79,-1117.24 1954.79,-1057.24 1550.79,-1057.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-1057.24 1550.79,-1117.24 1954.79,-1117.24 1954.79,-1057.24 1550.79,-1057.24"/>
<text text-anchor="start" x="1684.33" y="-1078.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;KFO &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-997.24 1550.79,-1057.24 1954.79,-1057.24 1954.79,-997.24 1550.79,-997.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-997.24 1550.79,-1057.24 1954.79,-1057.24 1954.79,-997.24 1550.79,-997.24"/>
<text text-anchor="start" x="1695.88" y="-1018.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;EX &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-937.24 1550.79,-997.24 1954.79,-997.24 1954.79,-937.24 1550.79,-937.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-937.24 1550.79,-997.24 1954.79,-997.24 1954.79,-937.24 1550.79,-937.24"/>
<text text-anchor="start" x="1651.44" y="-958.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;EXPORT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-877.24 1550.79,-937.24 1954.79,-937.24 1954.79,-877.24 1550.79,-877.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-877.24 1550.79,-937.24 1954.79,-937.24 1954.79,-877.24 1550.79,-877.24"/>
<text text-anchor="start" x="1662.11" y="-898.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;USERS &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-817.24 1550.79,-877.24 1954.79,-877.24 1954.79,-817.24 1550.79,-817.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-817.24 1550.79,-877.24 1954.79,-877.24 1954.79,-817.24 1550.79,-817.24"/>
<text text-anchor="start" x="1669.23" y="-838.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;AUDIT &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1549.79,-816.24 1549.79,-1358.24 1955.79,-1358.24 1955.79,-816.24 1549.79,-816.24"/>
</g>
<!-- permission_action -->
<g id="permission_action" class="node">
<title>permission_action</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1752.79" cy="-342.24" rx="288.5" ry="342.48"/>
<polygon fill="#29235c" stroke="transparent" points="1550.79,-522.24 1550.79,-582.24 1954.79,-582.24 1954.79,-522.24 1550.79,-522.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-522.24 1550.79,-582.24 1954.79,-582.24 1954.79,-522.24 1550.79,-522.24"/>
<text text-anchor="start" x="1561.64" y="-543.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;permission_action &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-462.24 1550.79,-522.24 1954.79,-522.24 1954.79,-462.24 1550.79,-462.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-462.24 1550.79,-522.24 1954.79,-522.24 1954.79,-462.24 1550.79,-462.24"/>
<text text-anchor="start" x="1676.33" y="-483.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;VIEW &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-402.24 1550.79,-462.24 1954.79,-462.24 1954.79,-402.24 1550.79,-402.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-402.24 1550.79,-462.24 1954.79,-462.24 1954.79,-402.24 1550.79,-402.24"/>
<text text-anchor="start" x="1680.78" y="-423.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;EDIT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-342.24 1550.79,-402.24 1954.79,-402.24 1954.79,-342.24 1550.79,-342.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-342.24 1550.79,-402.24 1954.79,-402.24 1954.79,-342.24 1550.79,-342.24"/>
<text text-anchor="start" x="1639.87" y="-363.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;APPROVE &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-282.24 1550.79,-342.24 1954.79,-342.24 1954.79,-282.24 1550.79,-282.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-282.24 1550.79,-342.24 1954.79,-342.24 1954.79,-282.24 1550.79,-282.24"/>
<text text-anchor="start" x="1659.44" y="-303.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;VERIFY &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-222.24 1550.79,-282.24 1954.79,-282.24 1954.79,-222.24 1550.79,-222.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-222.24 1550.79,-282.24 1954.79,-282.24 1954.79,-222.24 1550.79,-222.24"/>
<text text-anchor="start" x="1654.99" y="-243.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DELETE &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-162.24 1550.79,-222.24 1954.79,-222.24 1954.79,-162.24 1550.79,-162.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-162.24 1550.79,-222.24 1954.79,-222.24 1954.79,-162.24 1550.79,-162.24"/>
<text text-anchor="start" x="1651.44" y="-183.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;EXPORT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1550.79,-102.24 1550.79,-162.24 1954.79,-162.24 1954.79,-102.24 1550.79,-102.24"/>
<polygon fill="none" stroke="#29235c" points="1550.79,-102.24 1550.79,-162.24 1954.79,-162.24 1954.79,-102.24 1550.79,-102.24"/>
<text text-anchor="start" x="1665.68" y="-123.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;ADMIN &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1549.79,-101.24 1549.79,-583.24 1955.79,-583.24 1955.79,-101.24 1549.79,-101.24"/>
</g>
<!-- regional_office -->
<g id="regional_office" class="node">
<title>regional_office</title>
<g id="a_regional_office"><a xlink:title="regional_office&#10;STUB — полное определение в part01_groups_entities">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1607.13" cy="-1102.53" rx="253.29" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1430.13,-1102.53 1430.13,-1162.53 1784.13,-1162.53 1784.13,-1102.53 1430.13,-1102.53"/>
<polygon fill="none" stroke="#29235c" points="1430.13,-1102.53 1430.13,-1162.53 1784.13,-1162.53 1784.13,-1102.53 1430.13,-1102.53"/>
<text text-anchor="start" x="1440.85" y="-1123.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;regional_office &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1430.13,-1042.53 1430.13,-1102.53 1784.13,-1102.53 1784.13,-1042.53 1430.13,-1042.53"/>
<polygon fill="none" stroke="#29235c" points="1430.13,-1042.53 1430.13,-1102.53 1784.13,-1102.53 1784.13,-1042.53 1430.13,-1042.53"/>
<text text-anchor="start" x="1441.13" y="-1063.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1466.02" y="-1063.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1712.66" y="-1063.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1429.13,-1041.53 1429.13,-1163.53 1785.13,-1163.53 1785.13,-1041.53 1429.13,-1041.53"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1752.79" cy="-2644.24" rx="253.29" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1575.79,-2644.24 1575.79,-2704.24 1929.79,-2704.24 1929.79,-2644.24 1575.79,-2644.24"/>
<polygon fill="none" stroke="#29235c" points="1575.79,-2644.24 1575.79,-2704.24 1929.79,-2704.24 1929.79,-2644.24 1575.79,-2644.24"/>
<text text-anchor="start" x="1586.52" y="-2665.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;regional_office &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1575.79,-2584.24 1575.79,-2644.24 1929.79,-2644.24 1929.79,-2584.24 1575.79,-2584.24"/>
<polygon fill="none" stroke="#29235c" points="1575.79,-2584.24 1575.79,-2644.24 1929.79,-2644.24 1929.79,-2584.24 1575.79,-2584.24"/>
<text text-anchor="start" x="1586.79" y="-2605.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1611.68" y="-2605.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1858.33" y="-2605.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1574.79,-2583.24 1574.79,-2705.24 1930.79,-2705.24 1930.79,-2583.24 1574.79,-2583.24"/>
</a>
</g>
</g>
<!-- app_user -->
<g id="app_user" class="node">
<title>app_user</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="856.24" cy="-832.53" rx="420.04" ry="469.54"/>
<polygon fill="#1d71b8" stroke="transparent" points="561.24,-1102.53 561.24,-1162.53 1151.24,-1162.53 1151.24,-1102.53 561.24,-1102.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-1102.53 561.24,-1162.53 1151.24,-1162.53 1151.24,-1102.53 561.24,-1102.53"/>
<text text-anchor="start" x="727.3" y="-1123.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;app_user &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-1042.53 561.24,-1102.53 1151.24,-1102.53 1151.24,-1042.53 561.24,-1042.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-1042.53 561.24,-1102.53 1151.24,-1102.53 1151.24,-1042.53 561.24,-1042.53"/>
<text text-anchor="start" x="572.24" y="-1063.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="597.13" y="-1063.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1079.78" y="-1063.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-982.53 561.24,-1042.53 1151.24,-1042.53 1151.24,-982.53 561.24,-982.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-982.53 561.24,-1042.53 1151.24,-1042.53 1151.24,-982.53 561.24,-982.53"/>
<text text-anchor="start" x="572.24" y="-1002.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">external_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1033.57" y="-1003.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-922.53 561.24,-982.53 1151.24,-982.53 1151.24,-922.53 561.24,-922.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-922.53 561.24,-982.53 1151.24,-982.53 1151.24,-922.53 561.24,-922.53"/>
<text text-anchor="start" x="572.24" y="-942.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">email &#160;&#160;&#160;</text>
<text text-anchor="start" x="1033.57" y="-943.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-862.53 561.24,-922.53 1151.24,-922.53 1151.24,-862.53 561.24,-862.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-862.53 561.24,-922.53 1151.24,-922.53 1151.24,-862.53 561.24,-862.53"/>
<text text-anchor="start" x="572.24" y="-882.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">full_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="994.48" y="-883.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1101.15" y="-883.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1110.05" y="-883.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-802.53 561.24,-862.53 1151.24,-862.53 1151.24,-802.53 561.24,-802.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-802.53 561.24,-862.53 1151.24,-862.53 1151.24,-802.53 561.24,-802.53"/>
<text text-anchor="start" x="572.24" y="-822.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">employee_no &#160;&#160;&#160;</text>
<text text-anchor="start" x="1033.57" y="-823.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-742.53 561.24,-802.53 1151.24,-802.53 1151.24,-742.53 561.24,-742.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-742.53 561.24,-802.53 1151.24,-802.53 1151.24,-742.53 561.24,-742.53"/>
<text text-anchor="start" x="572.24" y="-762.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">regional_office_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1040.69" y="-763.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1101.15" y="-763.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1110.05" y="-763.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-682.53 561.24,-742.53 1151.24,-742.53 1151.24,-682.53 561.24,-682.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-682.53 561.24,-742.53 1151.24,-742.53 1151.24,-682.53 561.24,-682.53"/>
<text text-anchor="start" x="572.09" y="-702.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">business_segment &#160;&#160;&#160;</text>
<text text-anchor="start" x="873.87" y="-703.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">business_segment</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-622.53 561.24,-682.53 1151.24,-682.53 1151.24,-622.53 561.24,-622.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-622.53 561.24,-682.53 1151.24,-682.53 1151.24,-622.53 561.24,-622.53"/>
<text text-anchor="start" x="572.24" y="-642.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_active &#160;&#160;&#160;</text>
<text text-anchor="start" x="987.32" y="-643.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1101.15" y="-643.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1110.05" y="-643.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-562.53 561.24,-622.53 1151.24,-622.53 1151.24,-562.53 561.24,-562.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-562.53 561.24,-622.53 1151.24,-622.53 1151.24,-562.53 561.24,-562.53"/>
<text text-anchor="start" x="572.24" y="-582.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="967.79" y="-583.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="#e7e2dd" stroke="transparent" points="561.24,-502.53 561.24,-562.53 1151.24,-562.53 1151.24,-502.53 561.24,-502.53"/>
<polygon fill="none" stroke="#29235c" points="561.24,-502.53 561.24,-562.53 1151.24,-562.53 1151.24,-502.53 561.24,-502.53"/>
<text text-anchor="start" x="572.24" y="-522.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">updated_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="967.79" y="-523.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="560.24,-501.53 560.24,-1163.53 1152.24,-1163.53 1152.24,-501.53 560.24,-501.53"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1001.91" cy="-2374.24" rx="420.04" ry="469.54"/>
<polygon fill="#1d71b8" stroke="transparent" points="706.91,-2644.24 706.91,-2704.24 1296.91,-2704.24 1296.91,-2644.24 706.91,-2644.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2644.24 706.91,-2704.24 1296.91,-2704.24 1296.91,-2644.24 706.91,-2644.24"/>
<text text-anchor="start" x="872.97" y="-2665.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;app_user &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2584.24 706.91,-2644.24 1296.91,-2644.24 1296.91,-2584.24 706.91,-2584.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2584.24 706.91,-2644.24 1296.91,-2644.24 1296.91,-2584.24 706.91,-2584.24"/>
<text text-anchor="start" x="717.91" y="-2605.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="742.8" y="-2605.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1225.44" y="-2605.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2524.24 706.91,-2584.24 1296.91,-2584.24 1296.91,-2524.24 706.91,-2524.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2524.24 706.91,-2584.24 1296.91,-2584.24 1296.91,-2524.24 706.91,-2524.24"/>
<text text-anchor="start" x="717.91" y="-2544.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">external_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1179.24" y="-2545.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2464.24 706.91,-2524.24 1296.91,-2524.24 1296.91,-2464.24 706.91,-2464.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2464.24 706.91,-2524.24 1296.91,-2524.24 1296.91,-2464.24 706.91,-2464.24"/>
<text text-anchor="start" x="717.91" y="-2484.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">email &#160;&#160;&#160;</text>
<text text-anchor="start" x="1179.24" y="-2485.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2404.24 706.91,-2464.24 1296.91,-2464.24 1296.91,-2404.24 706.91,-2404.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2404.24 706.91,-2464.24 1296.91,-2464.24 1296.91,-2404.24 706.91,-2404.24"/>
<text text-anchor="start" x="717.91" y="-2424.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">full_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1140.14" y="-2425.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1246.82" y="-2425.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1255.71" y="-2425.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2344.24 706.91,-2404.24 1296.91,-2404.24 1296.91,-2344.24 706.91,-2344.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2344.24 706.91,-2404.24 1296.91,-2404.24 1296.91,-2344.24 706.91,-2344.24"/>
<text text-anchor="start" x="717.91" y="-2364.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">employee_no &#160;&#160;&#160;</text>
<text text-anchor="start" x="1179.24" y="-2365.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2284.24 706.91,-2344.24 1296.91,-2344.24 1296.91,-2284.24 706.91,-2284.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2284.24 706.91,-2344.24 1296.91,-2344.24 1296.91,-2284.24 706.91,-2284.24"/>
<text text-anchor="start" x="717.91" y="-2304.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">regional_office_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1186.35" y="-2305.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1246.82" y="-2305.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1255.71" y="-2305.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2224.24 706.91,-2284.24 1296.91,-2284.24 1296.91,-2224.24 706.91,-2224.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2224.24 706.91,-2284.24 1296.91,-2284.24 1296.91,-2224.24 706.91,-2224.24"/>
<text text-anchor="start" x="717.75" y="-2244.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">business_segment &#160;&#160;&#160;</text>
<text text-anchor="start" x="1019.54" y="-2245.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">business_segment</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2164.24 706.91,-2224.24 1296.91,-2224.24 1296.91,-2164.24 706.91,-2164.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2164.24 706.91,-2224.24 1296.91,-2224.24 1296.91,-2164.24 706.91,-2164.24"/>
<text text-anchor="start" x="717.91" y="-2184.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_active &#160;&#160;&#160;</text>
<text text-anchor="start" x="1132.98" y="-2185.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1246.82" y="-2185.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1255.71" y="-2185.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2104.24 706.91,-2164.24 1296.91,-2164.24 1296.91,-2104.24 706.91,-2104.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2104.24 706.91,-2164.24 1296.91,-2164.24 1296.91,-2104.24 706.91,-2104.24"/>
<text text-anchor="start" x="717.91" y="-2124.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="1113.46" y="-2125.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="#e7e2dd" stroke="transparent" points="706.91,-2044.24 706.91,-2104.24 1296.91,-2104.24 1296.91,-2044.24 706.91,-2044.24"/>
<polygon fill="none" stroke="#29235c" points="706.91,-2044.24 706.91,-2104.24 1296.91,-2104.24 1296.91,-2044.24 706.91,-2044.24"/>
<text text-anchor="start" x="717.91" y="-2064.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">updated_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="1113.46" y="-2065.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="705.91,-2043.24 705.91,-2705.24 1297.91,-2705.24 1297.91,-2043.24 705.91,-2043.24"/>
</g>
<!-- app_user&#45;&gt;business_segment -->
<g id="edge7" class="edge">
<g id="edge13" class="edge">
<title>app_user:e&#45;&gt;business_segment:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1152.24,-712.53C1262.41,-712.53 1289.96,-712.53 1400.13,-712.53"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1297.91,-2254.24C1408.08,-2254.24 1435.62,-2254.24 1545.79,-2254.24"/>
</g>
<!-- app_user&#45;&gt;regional_office -->
<!-- app_user&#45;&gt;regional_office -->
<g id="edge2" class="edge">
<title>app_user:e&#45;&gt;regional_office:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1152.24,-772.53C1330.23,-772.53 1250.86,-1061.22 1419.05,-1072.21"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1419.02,-1075.71 1429.13,-1072.53 1419.25,-1068.72 1419.02,-1075.71"/>
<text text-anchor="middle" x="1438.02" y="-1082.13" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1158.47" y="-782.13" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1297.91,-2314.24C1475.9,-2314.24 1396.53,-2602.92 1564.71,-2613.92"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1564.69,-2617.42 1574.79,-2614.24 1564.91,-2610.42 1564.69,-2617.42"/>
<text text-anchor="middle" x="1583.69" y="-2623.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1304.13" y="-2323.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- role -->
<g id="role" class="node">
<title>role</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="856.24" cy="-172.53" rx="202.47" ry="172.57"/>
<polygon fill="#1d71b8" stroke="transparent" points="715.24,-232.53 715.24,-292.53 997.24,-292.53 997.24,-232.53 715.24,-232.53"/>
<polygon fill="none" stroke="#29235c" points="715.24,-232.53 715.24,-292.53 997.24,-292.53 997.24,-232.53 715.24,-232.53"/>
<text text-anchor="start" x="767.33" y="-253.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;role &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="715.24,-172.53 715.24,-232.53 997.24,-232.53 997.24,-172.53 715.24,-172.53"/>
<polygon fill="none" stroke="#29235c" points="715.24,-172.53 715.24,-232.53 997.24,-232.53 997.24,-172.53 715.24,-172.53"/>
<text text-anchor="start" x="726.24" y="-193.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="751.13" y="-193.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="925.78" y="-193.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="715.24,-112.53 715.24,-172.53 997.24,-172.53 997.24,-112.53 715.24,-112.53"/>
<polygon fill="none" stroke="#29235c" points="715.24,-112.53 715.24,-172.53 997.24,-172.53 997.24,-112.53 715.24,-112.53"/>
<text text-anchor="start" x="726.24" y="-132.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">code &#160;&#160;&#160;</text>
<text text-anchor="start" x="840.48" y="-133.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="947.15" y="-133.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="956.05" y="-133.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="715.24,-52.53 715.24,-112.53 997.24,-112.53 997.24,-52.53 715.24,-52.53"/>
<polygon fill="none" stroke="#29235c" points="715.24,-52.53 715.24,-112.53 997.24,-112.53 997.24,-52.53 715.24,-52.53"/>
<text text-anchor="start" x="725.95" y="-72.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name &#160;&#160;&#160;</text>
<text text-anchor="start" x="840.86" y="-73.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="947.53" y="-73.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="956.43" y="-73.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="714.24,-51.53 714.24,-293.53 998.24,-293.53 998.24,-51.53 714.24,-51.53"/>
<g id="a_role"><a xlink:title="role&#10;Роль. Полномочия — через role_permission (v5.13); код роли в бизнес&#45;логике больше не проверяется">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1001.91" cy="-1587.24" rx="251.05" ry="299.63"/>
<polygon fill="#1d71b8" stroke="transparent" points="826.91,-1737.24 826.91,-1797.24 1177.91,-1797.24 1177.91,-1737.24 826.91,-1737.24"/>
<polygon fill="none" stroke="#29235c" points="826.91,-1737.24 826.91,-1797.24 1177.91,-1797.24 1177.91,-1737.24 826.91,-1737.24"/>
<text text-anchor="start" x="913.49" y="-1758.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;role &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="826.91,-1677.24 826.91,-1737.24 1177.91,-1737.24 1177.91,-1677.24 826.91,-1677.24"/>
<polygon fill="none" stroke="#29235c" points="826.91,-1677.24 826.91,-1737.24 1177.91,-1737.24 1177.91,-1677.24 826.91,-1677.24"/>
<text text-anchor="start" x="837.91" y="-1698.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="862.8" y="-1698.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1106.44" y="-1698.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="826.91,-1617.24 826.91,-1677.24 1177.91,-1677.24 1177.91,-1617.24 826.91,-1617.24"/>
<polygon fill="none" stroke="#29235c" points="826.91,-1617.24 826.91,-1677.24 1177.91,-1677.24 1177.91,-1617.24 826.91,-1617.24"/>
<text text-anchor="start" x="837.91" y="-1637.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">code &#160;&#160;&#160;</text>
<text text-anchor="start" x="1021.14" y="-1638.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1127.82" y="-1638.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1136.71" y="-1638.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="826.91,-1557.24 826.91,-1617.24 1177.91,-1617.24 1177.91,-1557.24 826.91,-1557.24"/>
<polygon fill="none" stroke="#29235c" points="826.91,-1557.24 826.91,-1617.24 1177.91,-1617.24 1177.91,-1557.24 826.91,-1557.24"/>
<text text-anchor="start" x="837.91" y="-1577.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1021.14" y="-1578.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1127.82" y="-1578.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1136.71" y="-1578.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="826.91,-1497.24 826.91,-1557.24 1177.91,-1557.24 1177.91,-1497.24 826.91,-1497.24"/>
<polygon fill="none" stroke="#29235c" points="826.91,-1497.24 826.91,-1557.24 1177.91,-1557.24 1177.91,-1497.24 826.91,-1497.24"/>
<text text-anchor="start" x="837.91" y="-1517.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description &#160;&#160;&#160;</text>
<text text-anchor="start" x="1115.33" y="-1518.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">text</text>
<polygon fill="#e7e2dd" stroke="transparent" points="826.91,-1437.24 826.91,-1497.24 1177.91,-1497.24 1177.91,-1437.24 826.91,-1437.24"/>
<polygon fill="none" stroke="#29235c" points="826.91,-1437.24 826.91,-1497.24 1177.91,-1497.24 1177.91,-1437.24 826.91,-1437.24"/>
<text text-anchor="start" x="837.51" y="-1457.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_system &#160;&#160;&#160;</text>
<text text-anchor="start" x="1014.45" y="-1458.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1128.28" y="-1458.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1137.17" y="-1458.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="826.91,-1377.24 826.91,-1437.24 1177.91,-1437.24 1177.91,-1377.24 826.91,-1377.24"/>
<polygon fill="none" stroke="#29235c" points="826.91,-1377.24 826.91,-1437.24 1177.91,-1437.24 1177.91,-1377.24 826.91,-1377.24"/>
<text text-anchor="start" x="837.91" y="-1397.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_active &#160;&#160;&#160;</text>
<text text-anchor="start" x="1013.98" y="-1398.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1127.82" y="-1398.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1136.71" y="-1398.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="825.41,-1376.24 825.41,-1798.24 1178.41,-1798.24 1178.41,-1376.24 825.41,-1376.24"/>
</a>
</g>
</g>
<!-- permission -->
<g id="permission" class="node">
<title>permission</title>
<g id="a_permission"><a xlink:title="permission&#10;Справочник прав (seed, привязан к коду). Ограничения по ЗО/филиалу и статусу КФО — отдельный policy&#45;слой поверх прав: право говорит «может», policy — «эту ли и сейчас ли»">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1001.91" cy="-969.24" rx="368.31" ry="299.63"/>
<polygon fill="#1d71b8" stroke="transparent" points="743.91,-1119.24 743.91,-1179.24 1260.91,-1179.24 1260.91,-1119.24 743.91,-1119.24"/>
<polygon fill="none" stroke="#29235c" points="743.91,-1119.24 743.91,-1179.24 1260.91,-1179.24 1260.91,-1119.24 743.91,-1119.24"/>
<text text-anchor="start" x="862.83" y="-1140.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;permission &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="743.91,-1059.24 743.91,-1119.24 1260.91,-1119.24 1260.91,-1059.24 743.91,-1059.24"/>
<polygon fill="none" stroke="#29235c" points="743.91,-1059.24 743.91,-1119.24 1260.91,-1119.24 1260.91,-1059.24 743.91,-1059.24"/>
<text text-anchor="start" x="754.91" y="-1080.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="779.8" y="-1080.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1189.44" y="-1080.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="743.91,-999.24 743.91,-1059.24 1260.91,-1059.24 1260.91,-999.24 743.91,-999.24"/>
<polygon fill="none" stroke="#29235c" points="743.91,-999.24 743.91,-1059.24 1260.91,-1059.24 1260.91,-999.24 743.91,-999.24"/>
<text text-anchor="start" x="754.91" y="-1019.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">code &#160;&#160;&#160;</text>
<text text-anchor="start" x="1104.14" y="-1020.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1210.82" y="-1020.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1219.71" y="-1020.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="743.91,-939.24 743.91,-999.24 1260.91,-999.24 1260.91,-939.24 743.91,-939.24"/>
<polygon fill="none" stroke="#29235c" points="743.91,-939.24 743.91,-999.24 1260.91,-999.24 1260.91,-939.24 743.91,-939.24"/>
<text text-anchor="start" x="754.81" y="-959.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">object_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="953.46" y="-960.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">permission_object</text>
<text text-anchor="start" x="1211.27" y="-960.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1220.16" y="-960.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="743.91,-879.24 743.91,-939.24 1260.91,-939.24 1260.91,-879.24 743.91,-879.24"/>
<polygon fill="none" stroke="#29235c" points="743.91,-879.24 743.91,-939.24 1260.91,-939.24 1260.91,-879.24 743.91,-879.24"/>
<text text-anchor="start" x="754.91" y="-899.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">action &#160;&#160;&#160;</text>
<text text-anchor="start" x="953.01" y="-900.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">permission_action</text>
<text text-anchor="start" x="1210.82" y="-900.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1219.71" y="-900.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="743.91,-819.24 743.91,-879.24 1260.91,-879.24 1260.91,-819.24 743.91,-819.24"/>
<polygon fill="none" stroke="#29235c" points="743.91,-819.24 743.91,-879.24 1260.91,-879.24 1260.91,-819.24 743.91,-819.24"/>
<text text-anchor="start" x="754.91" y="-839.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1104.14" y="-840.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1210.82" y="-840.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1219.71" y="-840.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="743.91,-759.24 743.91,-819.24 1260.91,-819.24 1260.91,-759.24 743.91,-759.24"/>
<polygon fill="none" stroke="#29235c" points="743.91,-759.24 743.91,-819.24 1260.91,-819.24 1260.91,-759.24 743.91,-759.24"/>
<text text-anchor="start" x="754.91" y="-779.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description &#160;&#160;&#160;</text>
<text text-anchor="start" x="1198.33" y="-780.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">text</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="742.41,-758.24 742.41,-1180.24 1261.41,-1180.24 1261.41,-758.24 742.41,-758.24"/>
</a>
</g>
</g>
<!-- permission&#45;&gt;permission_object -->
<g id="edge14" class="edge">
<title>permission:e&#45;&gt;permission_object:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1261.91,-969.24C1466.08,-969.24 1345.62,-1327.24 1549.79,-1327.24"/>
</g>
<!-- permission&#45;&gt;permission_action -->
<g id="edge15" class="edge">
<title>permission:e&#45;&gt;permission_action:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1261.91,-909.24C1465.74,-909.24 1345.96,-552.24 1549.79,-552.24"/>
</g>
<!-- role_permission -->
<g id="role_permission" class="node">
<title>role_permission</title>
<g id="a_role_permission"><a xlink:title="role_permission&#10;effective_permissions(user) = ∪ permissions(roles(user)). Прямых прав у пользователя нет (решение 30.09): исключения — через заведение роли">
<ellipse fill="none" stroke="black" stroke-width="0" cx="272.94" cy="-1647.24" rx="272.89" ry="214.92"/>
<polygon fill="#1d71b8" stroke="transparent" points="81.94,-1737.24 81.94,-1797.24 463.94,-1797.24 463.94,-1737.24 81.94,-1737.24"/>
<polygon fill="none" stroke="#29235c" points="81.94,-1737.24 81.94,-1797.24 463.94,-1797.24 463.94,-1737.24 81.94,-1737.24"/>
<text text-anchor="start" x="97.8" y="-1758.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;role_permission &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="81.94,-1677.24 81.94,-1737.24 463.94,-1737.24 463.94,-1677.24 81.94,-1677.24"/>
<polygon fill="none" stroke="#29235c" points="81.94,-1677.24 81.94,-1737.24 463.94,-1737.24 463.94,-1677.24 81.94,-1677.24"/>
<text text-anchor="start" x="92.94" y="-1698.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">role_id</text>
<text text-anchor="start" x="188.95" y="-1698.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="353.38" y="-1698.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="413.85" y="-1698.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="422.74" y="-1698.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="81.94,-1617.24 81.94,-1677.24 463.94,-1677.24 463.94,-1617.24 81.94,-1617.24"/>
<polygon fill="none" stroke="#29235c" points="81.94,-1617.24 81.94,-1677.24 463.94,-1677.24 463.94,-1617.24 81.94,-1617.24"/>
<text text-anchor="start" x="92.94" y="-1638.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">permission_id</text>
<text text-anchor="start" x="290.28" y="-1638.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="353.38" y="-1638.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="413.85" y="-1638.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="422.74" y="-1638.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="81.94,-1557.24 81.94,-1617.24 463.94,-1617.24 463.94,-1557.24 81.94,-1557.24"/>
<polygon fill="none" stroke="#29235c" points="81.94,-1557.24 81.94,-1617.24 463.94,-1617.24 463.94,-1557.24 81.94,-1557.24"/>
<text text-anchor="start" x="92.94" y="-1577.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">granted_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="392.48" y="-1578.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="81.94,-1497.24 81.94,-1557.24 463.94,-1557.24 463.94,-1497.24 81.94,-1497.24"/>
<polygon fill="none" stroke="#29235c" points="81.94,-1497.24 81.94,-1557.24 463.94,-1557.24 463.94,-1497.24 81.94,-1497.24"/>
<text text-anchor="start" x="92.68" y="-1517.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">granted_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="280.72" y="-1518.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="80.94,-1496.24 80.94,-1798.24 464.94,-1798.24 464.94,-1496.24 80.94,-1496.24"/>
</a>
</g>
</g>
<!-- role_permission&#45;&gt;app_user -->
<!-- role_permission&#45;&gt;app_user -->
<g id="edge8" class="edge">
<title>role_permission:e&#45;&gt;app_user:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M464.94,-1587.24C695.93,-1587.24 478.06,-2584.37 695.9,-2613.59"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="695.7,-2617.08 705.91,-2614.24 696.16,-2610.09 695.7,-2617.08"/>
<text text-anchor="middle" x="697.01" y="-2623.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="471.17" y="-1596.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- role_permission&#45;&gt;role -->
<!-- role_permission&#45;&gt;role -->
<g id="edge4" class="edge">
<title>role_permission:e&#45;&gt;role:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M464.94,-1707.24C621.93,-1707.24 663.7,-1707.24 815.73,-1707.24"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="815.91,-1710.74 825.91,-1707.24 815.91,-1703.74 815.91,-1710.74"/>
<text text-anchor="middle" x="817.01" y="-1716.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="471.17" y="-1716.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- role_permission&#45;&gt;permission -->
<!-- role_permission&#45;&gt;permission -->
<g id="edge6" class="edge">
<title>role_permission:e&#45;&gt;permission:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M464.94,-1647.24C636.98,-1647.24 498.46,-1428.7 581.89,-1278.24 633.73,-1184.75 632.68,-1095.02 732.89,-1089.51"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="733.01,-1093.01 742.91,-1089.24 732.82,-1086.01 733.01,-1093.01"/>
<text text-anchor="middle" x="734.01" y="-1098.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="471.17" y="-1656.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- user_role -->
<g id="user_role" class="node">
<title>user_role</title>
<g id="a_user_role"><a xlink:title="user_role&#10;M:N current&#45;state. История назначений — audit_event(USER_ROLE_CHANGE)">
<ellipse fill="none" stroke="black" stroke-width="0" cx="200.11" cy="-667.53" rx="200.22" ry="172.57"/>
<polygon fill="#1d71b8" stroke="transparent" points="61.11,-727.53 61.11,-787.53 340.11,-787.53 340.11,-727.53 61.11,-727.53"/>
<polygon fill="none" stroke="#29235c" points="61.11,-727.53 61.11,-787.53 340.11,-787.53 340.11,-727.53 61.11,-727.53"/>
<text text-anchor="start" x="71.69" y="-748.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;user_role &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="61.11,-667.53 61.11,-727.53 340.11,-727.53 340.11,-667.53 61.11,-667.53"/>
<polygon fill="none" stroke="#29235c" points="61.11,-667.53 61.11,-727.53 340.11,-727.53 340.11,-667.53 61.11,-667.53"/>
<text text-anchor="start" x="72.11" y="-688.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="97" y="-688.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="268.64" y="-688.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="61.11,-607.53 61.11,-667.53 340.11,-667.53 340.11,-607.53 61.11,-607.53"/>
<polygon fill="none" stroke="#29235c" points="61.11,-607.53 61.11,-667.53 340.11,-667.53 340.11,-607.53 61.11,-607.53"/>
<text text-anchor="start" x="72.11" y="-627.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">user_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="229.55" y="-628.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="290.02" y="-628.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="298.91" y="-628.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="61.11,-547.53 61.11,-607.53 340.11,-607.53 340.11,-547.53 61.11,-547.53"/>
<polygon fill="none" stroke="#29235c" points="61.11,-547.53 61.11,-607.53 340.11,-607.53 340.11,-547.53 61.11,-547.53"/>
<text text-anchor="start" x="72.11" y="-567.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">role_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="229.55" y="-568.73" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="290.02" y="-568.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="298.91" y="-568.73" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="59.61,-546.53 59.61,-788.53 340.61,-788.53 340.61,-546.53 59.61,-546.53"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="272.94" cy="-2318.24" rx="200.22" ry="172.57"/>
<polygon fill="#1d71b8" stroke="transparent" points="133.94,-2378.24 133.94,-2438.24 412.94,-2438.24 412.94,-2378.24 133.94,-2378.24"/>
<polygon fill="none" stroke="#29235c" points="133.94,-2378.24 133.94,-2438.24 412.94,-2438.24 412.94,-2378.24 133.94,-2378.24"/>
<text text-anchor="start" x="144.52" y="-2399.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;user_role &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="133.94,-2318.24 133.94,-2378.24 412.94,-2378.24 412.94,-2318.24 133.94,-2318.24"/>
<polygon fill="none" stroke="#29235c" points="133.94,-2318.24 133.94,-2378.24 412.94,-2378.24 412.94,-2318.24 133.94,-2318.24"/>
<text text-anchor="start" x="144.94" y="-2339.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="169.83" y="-2339.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="341.48" y="-2339.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="133.94,-2258.24 133.94,-2318.24 412.94,-2318.24 412.94,-2258.24 133.94,-2258.24"/>
<polygon fill="none" stroke="#29235c" points="133.94,-2258.24 133.94,-2318.24 412.94,-2318.24 412.94,-2258.24 133.94,-2258.24"/>
<text text-anchor="start" x="144.94" y="-2278.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">user_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="302.38" y="-2279.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="362.85" y="-2279.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="371.74" y="-2279.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="133.94,-2198.24 133.94,-2258.24 412.94,-2258.24 412.94,-2198.24 133.94,-2198.24"/>
<polygon fill="none" stroke="#29235c" points="133.94,-2198.24 133.94,-2258.24 412.94,-2258.24 412.94,-2198.24 133.94,-2198.24"/>
<text text-anchor="start" x="144.94" y="-2218.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">role_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="302.38" y="-2219.44" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="362.85" y="-2219.44" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="371.74" y="-2219.44" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="132.44,-2197.24 132.44,-2439.24 413.44,-2439.24 413.44,-2197.24 132.44,-2197.24"/>
</a>
</g>
</g>
<!-- user_role&#45;&gt;app_user -->
<!-- user_role&#45;&gt;app_user -->
<g id="edge4" class="edge">
<g id="edge10" class="edge">
<title>user_role:e&#45;&gt;app_user:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M341.11,-637.53C554.1,-637.53 350.54,-1058.63 550.11,-1072.2"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="550.13,-1075.7 560.24,-1072.53 550.37,-1068.71 550.13,-1075.7"/>
<text text-anchor="middle" x="551.35" y="-1082.13" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="347.33" y="-637.53" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M413.94,-2288.24C604.93,-2288.24 514.82,-2602.57 695.65,-2613.92"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="695.81,-2617.43 705.91,-2614.24 696.02,-2610.43 695.81,-2617.43"/>
<text text-anchor="middle" x="714.8" y="-2623.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="420.17" y="-2297.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- user_role&#45;&gt;role -->
<!-- user_role&#45;&gt;role -->
<g id="edge6" class="edge">
<g id="edge12" class="edge">
<title>user_role:e&#45;&gt;role:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M341.11,-577.53C449.27,-577.53 363.5,-433.6 436.22,-353.53 528.46,-251.99 571.51,-204.86 704.12,-202.62"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="704.27,-206.12 714.24,-202.53 704.22,-199.12 704.27,-206.12"/>
<text text-anchor="middle" x="705.35" y="-173.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="347.33" y="-548.73" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M413.94,-2228.24C579.7,-2228.24 476.28,-2023 581.89,-1895.24 666.9,-1792.39 687.95,-1711.44 815.7,-1707.4"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="815.96,-1710.89 825.91,-1707.24 815.85,-1703.9 815.96,-1710.89"/>
<text text-anchor="middle" x="834.8" y="-1716.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="420.17" y="-2237.84" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 KiB

After

Width:  |  Height:  |  Size: 308 KiB

View File

@ -4,261 +4,261 @@
<!-- Generated by graphviz version 2.47.0 (20210316.0004)
-->
<!-- Title: dbml Pages: 1 -->
<svg width="2603pt" height="2817pt"
viewBox="0.00 0.00 2602.96 2816.61" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="2225pt" height="2817pt"
viewBox="0.00 0.00 2225.36 2816.61" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2812.61)">
<title>dbml</title>
<!-- account_kind -->
<g id="account_kind" class="node">
<title>account_kind</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2305.04" cy="-1123.39" rx="239.92" ry="172.57"/>
<polygon fill="#29235c" stroke="transparent" points="2138.04,-1183.39 2138.04,-1243.39 2473.04,-1243.39 2473.04,-1183.39 2138.04,-1183.39"/>
<polygon fill="none" stroke="#29235c" points="2138.04,-1183.39 2138.04,-1243.39 2473.04,-1243.39 2473.04,-1183.39 2138.04,-1183.39"/>
<text text-anchor="start" x="2149.04" y="-1204.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;account_kind &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2138.04,-1123.39 2138.04,-1183.39 2473.04,-1183.39 2473.04,-1123.39 2138.04,-1123.39"/>
<polygon fill="none" stroke="#29235c" points="2138.04,-1123.39 2138.04,-1183.39 2473.04,-1183.39 2473.04,-1123.39 2138.04,-1123.39"/>
<text text-anchor="start" x="2259.3" y="-1144.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;A &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2138.04,-1063.39 2138.04,-1123.39 2473.04,-1123.39 2473.04,-1063.39 2138.04,-1063.39"/>
<polygon fill="none" stroke="#29235c" points="2138.04,-1063.39 2138.04,-1123.39 2473.04,-1123.39 2473.04,-1063.39 2138.04,-1063.39"/>
<text text-anchor="start" x="2259.3" y="-1084.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;P &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2138.04,-1003.39 2138.04,-1063.39 2473.04,-1063.39 2473.04,-1003.39 2138.04,-1003.39"/>
<polygon fill="none" stroke="#29235c" points="2138.04,-1003.39 2138.04,-1063.39 2473.04,-1063.39 2473.04,-1003.39 2138.04,-1003.39"/>
<text text-anchor="start" x="2248.63" y="-1024.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;AP &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2136.54,-1002.39 2136.54,-1244.39 2473.54,-1244.39 2473.54,-1002.39 2136.54,-1002.39"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1927.45" cy="-1123.39" rx="239.92" ry="172.57"/>
<polygon fill="#29235c" stroke="transparent" points="1760.45,-1183.39 1760.45,-1243.39 2095.45,-1243.39 2095.45,-1183.39 1760.45,-1183.39"/>
<polygon fill="none" stroke="#29235c" points="1760.45,-1183.39 1760.45,-1243.39 2095.45,-1243.39 2095.45,-1183.39 1760.45,-1183.39"/>
<text text-anchor="start" x="1771.44" y="-1204.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;account_kind &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1760.45,-1123.39 1760.45,-1183.39 2095.45,-1183.39 2095.45,-1123.39 1760.45,-1123.39"/>
<polygon fill="none" stroke="#29235c" points="1760.45,-1123.39 1760.45,-1183.39 2095.45,-1183.39 2095.45,-1123.39 1760.45,-1123.39"/>
<text text-anchor="start" x="1881.71" y="-1144.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;A &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1760.45,-1063.39 1760.45,-1123.39 2095.45,-1123.39 2095.45,-1063.39 1760.45,-1063.39"/>
<polygon fill="none" stroke="#29235c" points="1760.45,-1063.39 1760.45,-1123.39 2095.45,-1123.39 2095.45,-1063.39 1760.45,-1063.39"/>
<text text-anchor="start" x="1881.71" y="-1084.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;P &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1760.45,-1003.39 1760.45,-1063.39 2095.45,-1063.39 2095.45,-1003.39 1760.45,-1003.39"/>
<polygon fill="none" stroke="#29235c" points="1760.45,-1003.39 1760.45,-1063.39 2095.45,-1063.39 2095.45,-1003.39 1760.45,-1003.39"/>
<text text-anchor="start" x="1871.04" y="-1024.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;AP &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1758.95,-1002.39 1758.95,-1244.39 2095.95,-1244.39 2095.95,-1002.39 1758.95,-1002.39"/>
</g>
<!-- account_row_type -->
<g id="account_row_type" class="node">
<title>account_row_type</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2305.04" cy="-760.39" rx="289.83" ry="172.57"/>
<polygon fill="#29235c" stroke="transparent" points="2102.04,-820.39 2102.04,-880.39 2508.04,-880.39 2508.04,-820.39 2102.04,-820.39"/>
<polygon fill="none" stroke="#29235c" points="2102.04,-820.39 2102.04,-880.39 2508.04,-880.39 2508.04,-820.39 2102.04,-820.39"/>
<text text-anchor="start" x="2112.97" y="-841.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;account_row_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2102.04,-760.39 2102.04,-820.39 2508.04,-820.39 2508.04,-760.39 2102.04,-760.39"/>
<polygon fill="none" stroke="#29235c" points="2102.04,-760.39 2102.04,-820.39 2508.04,-820.39 2508.04,-760.39 2102.04,-760.39"/>
<text text-anchor="start" x="2213.45" y="-781.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;account &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2102.04,-700.39 2102.04,-760.39 2508.04,-760.39 2508.04,-700.39 2102.04,-700.39"/>
<polygon fill="none" stroke="#29235c" points="2102.04,-700.39 2102.04,-760.39 2508.04,-760.39 2508.04,-700.39 2102.04,-700.39"/>
<text text-anchor="start" x="2187.66" y="-721.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;subaccount &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2102.04,-640.39 2102.04,-700.39 2508.04,-700.39 2508.04,-640.39 2102.04,-640.39"/>
<polygon fill="none" stroke="#29235c" points="2102.04,-640.39 2102.04,-700.39 2508.04,-700.39 2508.04,-640.39 2102.04,-640.39"/>
<text text-anchor="start" x="2215.24" y="-661.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;analytic &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2101.04,-639.39 2101.04,-881.39 2509.04,-881.39 2509.04,-639.39 2101.04,-639.39"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1927.45" cy="-760.39" rx="289.83" ry="172.57"/>
<polygon fill="#29235c" stroke="transparent" points="1724.45,-820.39 1724.45,-880.39 2130.45,-880.39 2130.45,-820.39 1724.45,-820.39"/>
<polygon fill="none" stroke="#29235c" points="1724.45,-820.39 1724.45,-880.39 2130.45,-880.39 2130.45,-820.39 1724.45,-820.39"/>
<text text-anchor="start" x="1735.38" y="-841.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;account_row_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1724.45,-760.39 1724.45,-820.39 2130.45,-820.39 2130.45,-760.39 1724.45,-760.39"/>
<polygon fill="none" stroke="#29235c" points="1724.45,-760.39 1724.45,-820.39 2130.45,-820.39 2130.45,-760.39 1724.45,-760.39"/>
<text text-anchor="start" x="1835.85" y="-781.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;account &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1724.45,-700.39 1724.45,-760.39 2130.45,-760.39 2130.45,-700.39 1724.45,-700.39"/>
<polygon fill="none" stroke="#29235c" points="1724.45,-700.39 1724.45,-760.39 2130.45,-760.39 2130.45,-700.39 1724.45,-700.39"/>
<text text-anchor="start" x="1810.06" y="-721.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;subaccount &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1724.45,-640.39 1724.45,-700.39 2130.45,-700.39 2130.45,-640.39 1724.45,-640.39"/>
<polygon fill="none" stroke="#29235c" points="1724.45,-640.39 1724.45,-700.39 2130.45,-700.39 2130.45,-640.39 1724.45,-640.39"/>
<text text-anchor="start" x="1837.65" y="-661.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;analytic &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1723.45,-639.39 1723.45,-881.39 2131.45,-881.39 2131.45,-639.39 1723.45,-639.39"/>
</g>
<!-- document_type -->
<g id="document_type" class="node">
<title>document_type</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1410.62" cy="-257.39" rx="568.53" ry="257.27"/>
<polygon fill="#29235c" stroke="transparent" points="1010.62,-377.39 1010.62,-437.39 1810.62,-437.39 1810.62,-377.39 1010.62,-377.39"/>
<polygon fill="none" stroke="#29235c" points="1010.62,-377.39 1010.62,-437.39 1810.62,-437.39 1810.62,-377.39 1010.62,-377.39"/>
<text text-anchor="start" x="1238.99" y="-398.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;document_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1010.62,-317.39 1010.62,-377.39 1810.62,-377.39 1810.62,-317.39 1010.62,-317.39"/>
<polygon fill="none" stroke="#29235c" points="1010.62,-317.39 1010.62,-377.39 1810.62,-377.39 1810.62,-317.39 1010.62,-317.39"/>
<text text-anchor="start" x="1021.23" y="-338.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;Бухгалтерский баланс &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1010.62,-257.39 1010.62,-317.39 1810.62,-317.39 1810.62,-257.39 1010.62,-257.39"/>
<polygon fill="none" stroke="#29235c" points="1010.62,-257.39 1010.62,-317.39 1810.62,-317.39 1810.62,-257.39 1010.62,-257.39"/>
<text text-anchor="start" x="1315.48" y="-278.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;ОФР &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1010.62,-197.39 1010.62,-257.39 1810.62,-257.39 1810.62,-197.39 1010.62,-197.39"/>
<polygon fill="none" stroke="#29235c" points="1010.62,-197.39 1010.62,-257.39 1810.62,-257.39 1810.62,-197.39 1010.62,-197.39"/>
<text text-anchor="start" x="1312.83" y="-218.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;ОСВ &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1010.62,-137.39 1010.62,-197.39 1810.62,-197.39 1810.62,-137.39 1010.62,-137.39"/>
<polygon fill="none" stroke="#29235c" points="1010.62,-137.39 1010.62,-197.39 1810.62,-197.39 1810.62,-137.39 1010.62,-137.39"/>
<text text-anchor="start" x="1191.92" y="-158.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;Расшифровка &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1010.62,-77.39 1010.62,-137.39 1810.62,-137.39 1810.62,-77.39 1010.62,-77.39"/>
<polygon fill="none" stroke="#29235c" points="1010.62,-77.39 1010.62,-137.39 1810.62,-137.39 1810.62,-77.39 1010.62,-77.39"/>
<text text-anchor="start" x="1106.59" y="-98.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;Прочий документ &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1009.62,-76.39 1009.62,-438.39 1811.62,-438.39 1811.62,-76.39 1009.62,-76.39"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1221.82" cy="-257.39" rx="260.84" ry="257.27"/>
<polygon fill="#29235c" stroke="transparent" points="1039.82,-377.39 1039.82,-437.39 1404.82,-437.39 1404.82,-377.39 1039.82,-377.39"/>
<polygon fill="none" stroke="#29235c" points="1039.82,-377.39 1039.82,-437.39 1404.82,-437.39 1404.82,-377.39 1039.82,-377.39"/>
<text text-anchor="start" x="1050.69" y="-398.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;document_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1039.82,-317.39 1039.82,-377.39 1404.82,-377.39 1404.82,-317.39 1039.82,-317.39"/>
<polygon fill="none" stroke="#29235c" points="1039.82,-317.39 1039.82,-377.39 1404.82,-377.39 1404.82,-317.39 1039.82,-317.39"/>
<text text-anchor="start" x="1112.07" y="-338.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;BALANCE &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1039.82,-257.39 1039.82,-317.39 1404.82,-317.39 1404.82,-257.39 1039.82,-257.39"/>
<polygon fill="none" stroke="#29235c" points="1039.82,-257.39 1039.82,-317.39 1404.82,-317.39 1404.82,-257.39 1039.82,-257.39"/>
<text text-anchor="start" x="1122.76" y="-278.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;INCOME &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1039.82,-197.39 1039.82,-257.39 1404.82,-257.39 1404.82,-197.39 1039.82,-197.39"/>
<polygon fill="none" stroke="#29235c" points="1039.82,-197.39 1039.82,-257.39 1404.82,-257.39 1404.82,-197.39 1039.82,-197.39"/>
<text text-anchor="start" x="1152.96" y="-218.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;OSV &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1039.82,-137.39 1039.82,-197.39 1404.82,-197.39 1404.82,-137.39 1039.82,-137.39"/>
<polygon fill="none" stroke="#29235c" points="1039.82,-137.39 1039.82,-197.39 1404.82,-197.39 1404.82,-137.39 1039.82,-137.39"/>
<text text-anchor="start" x="1082.75" y="-158.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DISCLOSURE &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1039.82,-77.39 1039.82,-137.39 1404.82,-137.39 1404.82,-77.39 1039.82,-77.39"/>
<polygon fill="none" stroke="#29235c" points="1039.82,-77.39 1039.82,-137.39 1404.82,-137.39 1404.82,-77.39 1039.82,-77.39"/>
<text text-anchor="start" x="1130.75" y="-98.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;OTHER &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1038.32,-76.39 1038.32,-438.39 1405.32,-438.39 1405.32,-76.39 1038.32,-76.39"/>
</g>
<!-- statement_type -->
<g id="statement_type" class="node">
<title>statement_type</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2305.04" cy="-2409.39" rx="260.84" ry="130.22"/>
<polygon fill="#29235c" stroke="transparent" points="2123.04,-2439.39 2123.04,-2499.39 2488.04,-2499.39 2488.04,-2439.39 2123.04,-2439.39"/>
<polygon fill="none" stroke="#29235c" points="2123.04,-2439.39 2123.04,-2499.39 2488.04,-2499.39 2488.04,-2439.39 2123.04,-2439.39"/>
<text text-anchor="start" x="2133.92" y="-2460.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;statement_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2123.04,-2379.39 2123.04,-2439.39 2488.04,-2439.39 2488.04,-2379.39 2123.04,-2379.39"/>
<polygon fill="none" stroke="#29235c" points="2123.04,-2379.39 2123.04,-2439.39 2488.04,-2439.39 2488.04,-2379.39 2123.04,-2379.39"/>
<text text-anchor="start" x="2213.95" y="-2400.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;balance &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2123.04,-2319.39 2123.04,-2379.39 2488.04,-2379.39 2488.04,-2319.39 2123.04,-2319.39"/>
<polygon fill="none" stroke="#29235c" points="2123.04,-2319.39 2123.04,-2379.39 2488.04,-2379.39 2488.04,-2319.39 2123.04,-2319.39"/>
<text text-anchor="start" x="2218.41" y="-2340.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;income &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2121.54,-2318.39 2121.54,-2500.39 2488.54,-2500.39 2488.54,-2318.39 2121.54,-2318.39"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1927.45" cy="-2409.39" rx="260.84" ry="130.22"/>
<polygon fill="#29235c" stroke="transparent" points="1745.45,-2439.39 1745.45,-2499.39 2110.45,-2499.39 2110.45,-2439.39 1745.45,-2439.39"/>
<polygon fill="none" stroke="#29235c" points="1745.45,-2439.39 1745.45,-2499.39 2110.45,-2499.39 2110.45,-2439.39 1745.45,-2439.39"/>
<text text-anchor="start" x="1756.33" y="-2460.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;statement_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1745.45,-2379.39 1745.45,-2439.39 2110.45,-2439.39 2110.45,-2379.39 1745.45,-2379.39"/>
<polygon fill="none" stroke="#29235c" points="1745.45,-2379.39 1745.45,-2439.39 2110.45,-2439.39 2110.45,-2379.39 1745.45,-2379.39"/>
<text text-anchor="start" x="1836.35" y="-2400.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;balance &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1745.45,-2319.39 1745.45,-2379.39 2110.45,-2379.39 2110.45,-2319.39 1745.45,-2319.39"/>
<polygon fill="none" stroke="#29235c" points="1745.45,-2319.39 1745.45,-2379.39 2110.45,-2379.39 2110.45,-2319.39 1745.45,-2319.39"/>
<text text-anchor="start" x="1840.82" y="-2340.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;income &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1743.95,-2318.39 1743.95,-2500.39 2110.95,-2500.39 2110.95,-2318.39 1743.95,-2318.39"/>
</g>
<!-- consolidation_approach -->
<g id="consolidation_approach" class="node">
<title>consolidation_approach</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1410.62" cy="-662.39" rx="345.14" ry="130.22"/>
<polygon fill="#29235c" stroke="transparent" points="1168.62,-692.39 1168.62,-752.39 1652.62,-752.39 1652.62,-692.39 1168.62,-692.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-692.39 1168.62,-752.39 1652.62,-752.39 1652.62,-692.39 1168.62,-692.39"/>
<text text-anchor="start" x="1179.42" y="-713.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;consolidation_approach &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-632.39 1168.62,-692.39 1652.62,-692.39 1652.62,-632.39 1168.62,-632.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-632.39 1168.62,-692.39 1652.62,-692.39 1652.62,-632.39 1168.62,-632.39"/>
<text text-anchor="start" x="1327.04" y="-653.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;BASIC &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-572.39 1168.62,-632.39 1652.62,-632.39 1652.62,-572.39 1168.62,-572.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-572.39 1168.62,-632.39 1652.62,-632.39 1652.62,-572.39 1168.62,-572.39"/>
<text text-anchor="start" x="1287.94" y="-593.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;EXTENDED &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1167.62,-571.39 1167.62,-753.39 1653.62,-753.39 1653.62,-571.39 1167.62,-571.39"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1221.82" cy="-662.39" rx="345.14" ry="130.22"/>
<polygon fill="#29235c" stroke="transparent" points="979.82,-692.39 979.82,-752.39 1463.82,-752.39 1463.82,-692.39 979.82,-692.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-692.39 979.82,-752.39 1463.82,-752.39 1463.82,-692.39 979.82,-692.39"/>
<text text-anchor="start" x="990.62" y="-713.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;consolidation_approach &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-632.39 979.82,-692.39 1463.82,-692.39 1463.82,-632.39 979.82,-632.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-632.39 979.82,-692.39 1463.82,-692.39 1463.82,-632.39 979.82,-632.39"/>
<text text-anchor="start" x="1138.24" y="-653.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;BASIC &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-572.39 979.82,-632.39 1463.82,-632.39 1463.82,-572.39 979.82,-572.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-572.39 979.82,-632.39 1463.82,-632.39 1463.82,-572.39 979.82,-572.39"/>
<text text-anchor="start" x="1099.14" y="-593.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;EXTENDED &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="978.82,-571.39 978.82,-753.39 1464.82,-753.39 1464.82,-571.39 978.82,-571.39"/>
</g>
<!-- chart_of_account -->
<g id="chart_of_account" class="node">
<title>chart_of_account</title>
<g id="a_chart_of_account"><a xlink:title="chart_of_account&#10;План счетов">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1410.62" cy="-1152.39" rx="345.55" ry="342.48"/>
<polygon fill="#1d71b8" stroke="transparent" points="1168.62,-1332.39 1168.62,-1392.39 1653.62,-1392.39 1653.62,-1332.39 1168.62,-1332.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-1332.39 1168.62,-1392.39 1653.62,-1392.39 1653.62,-1332.39 1168.62,-1332.39"/>
<text text-anchor="start" x="1226.15" y="-1353.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;chart_of_account &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-1272.39 1168.62,-1332.39 1653.62,-1332.39 1653.62,-1272.39 1168.62,-1272.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-1272.39 1168.62,-1332.39 1653.62,-1332.39 1653.62,-1272.39 1168.62,-1272.39"/>
<text text-anchor="start" x="1179.62" y="-1293.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1204.51" y="-1293.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1582.15" y="-1293.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-1212.39 1168.62,-1272.39 1653.62,-1272.39 1653.62,-1212.39 1168.62,-1212.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-1212.39 1168.62,-1272.39 1653.62,-1272.39 1653.62,-1212.39 1168.62,-1212.39"/>
<text text-anchor="start" x="1179.62" y="-1232.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">code &#160;&#160;&#160;</text>
<text text-anchor="start" x="1496.85" y="-1233.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1603.52" y="-1233.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1612.42" y="-1233.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-1152.39 1168.62,-1212.39 1653.62,-1212.39 1653.62,-1152.39 1168.62,-1152.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-1152.39 1168.62,-1212.39 1653.62,-1212.39 1653.62,-1152.39 1168.62,-1152.39"/>
<text text-anchor="start" x="1179.62" y="-1172.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">parent_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1582.15" y="-1173.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-1092.39 1168.62,-1152.39 1653.62,-1152.39 1653.62,-1092.39 1168.62,-1092.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-1092.39 1168.62,-1152.39 1653.62,-1152.39 1653.62,-1092.39 1168.62,-1092.39"/>
<text text-anchor="start" x="1179.62" y="-1112.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1496.85" y="-1113.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1603.52" y="-1113.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1612.42" y="-1113.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-1032.39 1168.62,-1092.39 1653.62,-1092.39 1653.62,-1032.39 1168.62,-1032.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-1032.39 1168.62,-1092.39 1653.62,-1092.39 1653.62,-1032.39 1168.62,-1032.39"/>
<text text-anchor="start" x="1179.62" y="-1052.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">kind &#160;&#160;&#160;</text>
<text text-anchor="start" x="1454.1" y="-1053.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">account_kind</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-972.39 1168.62,-1032.39 1653.62,-1032.39 1653.62,-972.39 1168.62,-972.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-972.39 1168.62,-1032.39 1653.62,-1032.39 1653.62,-972.39 1168.62,-972.39"/>
<text text-anchor="start" x="1179.43" y="-992.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">row_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1344.25" y="-993.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">account_row_type</text>
<text text-anchor="start" x="1603.89" y="-993.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1612.78" y="-993.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1168.62,-912.39 1168.62,-972.39 1653.62,-972.39 1653.62,-912.39 1168.62,-912.39"/>
<polygon fill="none" stroke="#29235c" points="1168.62,-912.39 1168.62,-972.39 1653.62,-972.39 1653.62,-912.39 1168.62,-912.39"/>
<text text-anchor="start" x="1179.62" y="-932.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_off_balance &#160;&#160;&#160;</text>
<text text-anchor="start" x="1489.69" y="-933.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1603.52" y="-933.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1612.42" y="-933.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1167.12,-911.39 1167.12,-1393.39 1654.12,-1393.39 1654.12,-911.39 1167.12,-911.39"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1221.82" cy="-1152.39" rx="345.55" ry="342.48"/>
<polygon fill="#1d71b8" stroke="transparent" points="979.82,-1332.39 979.82,-1392.39 1464.82,-1392.39 1464.82,-1332.39 979.82,-1332.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-1332.39 979.82,-1392.39 1464.82,-1392.39 1464.82,-1332.39 979.82,-1332.39"/>
<text text-anchor="start" x="1037.35" y="-1353.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;chart_of_account &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-1272.39 979.82,-1332.39 1464.82,-1332.39 1464.82,-1272.39 979.82,-1272.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-1272.39 979.82,-1332.39 1464.82,-1332.39 1464.82,-1272.39 979.82,-1272.39"/>
<text text-anchor="start" x="990.82" y="-1293.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1015.71" y="-1293.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1393.35" y="-1293.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-1212.39 979.82,-1272.39 1464.82,-1272.39 1464.82,-1212.39 979.82,-1212.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-1212.39 979.82,-1272.39 1464.82,-1272.39 1464.82,-1212.39 979.82,-1212.39"/>
<text text-anchor="start" x="990.82" y="-1232.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">code &#160;&#160;&#160;</text>
<text text-anchor="start" x="1308.05" y="-1233.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1414.73" y="-1233.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1423.62" y="-1233.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-1152.39 979.82,-1212.39 1464.82,-1212.39 1464.82,-1152.39 979.82,-1152.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-1152.39 979.82,-1212.39 1464.82,-1212.39 1464.82,-1152.39 979.82,-1152.39"/>
<text text-anchor="start" x="990.82" y="-1172.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">parent_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1393.35" y="-1173.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-1092.39 979.82,-1152.39 1464.82,-1152.39 1464.82,-1092.39 979.82,-1092.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-1092.39 979.82,-1152.39 1464.82,-1152.39 1464.82,-1092.39 979.82,-1092.39"/>
<text text-anchor="start" x="990.82" y="-1112.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1308.05" y="-1113.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1414.73" y="-1113.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1423.62" y="-1113.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-1032.39 979.82,-1092.39 1464.82,-1092.39 1464.82,-1032.39 979.82,-1032.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-1032.39 979.82,-1092.39 1464.82,-1092.39 1464.82,-1032.39 979.82,-1032.39"/>
<text text-anchor="start" x="990.82" y="-1052.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">kind &#160;&#160;&#160;</text>
<text text-anchor="start" x="1265.3" y="-1053.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">account_kind</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-972.39 979.82,-1032.39 1464.82,-1032.39 1464.82,-972.39 979.82,-972.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-972.39 979.82,-1032.39 1464.82,-1032.39 1464.82,-972.39 979.82,-972.39"/>
<text text-anchor="start" x="990.63" y="-992.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">row_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1155.45" y="-993.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">account_row_type</text>
<text text-anchor="start" x="1415.09" y="-993.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1423.98" y="-993.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="979.82,-912.39 979.82,-972.39 1464.82,-972.39 1464.82,-912.39 979.82,-912.39"/>
<polygon fill="none" stroke="#29235c" points="979.82,-912.39 979.82,-972.39 1464.82,-972.39 1464.82,-912.39 979.82,-912.39"/>
<text text-anchor="start" x="990.82" y="-932.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_off_balance &#160;&#160;&#160;</text>
<text text-anchor="start" x="1300.89" y="-933.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1414.73" y="-933.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1423.62" y="-933.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="978.32,-911.39 978.32,-1393.39 1465.32,-1393.39 1465.32,-911.39 978.32,-911.39"/>
</a>
</g>
</g>
<!-- chart_of_account&#45;&gt;account_kind -->
<g id="edge9" class="edge">
<title>chart_of_account:e&#45;&gt;account_kind:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1654.62,-1062.39C1879.29,-1062.39 1912.37,-1213.39 2137.04,-1213.39"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1465.82,-1062.39C1612.57,-1062.39 1612.7,-1213.39 1759.45,-1213.39"/>
</g>
<!-- chart_of_account&#45;&gt;account_row_type -->
<g id="edge10" class="edge">
<title>chart_of_account:e&#45;&gt;account_row_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1654.62,-1002.39C1864.21,-1002.39 1891.45,-850.39 2101.04,-850.39"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1465.82,-1002.39C1598.76,-1002.39 1590.5,-850.39 1723.45,-850.39"/>
</g>
<!-- chart_of_account&#45;&gt;chart_of_account -->
<!-- chart_of_account&#45;&gt;chart_of_account -->
<g id="edge2" class="edge">
<title>chart_of_account:e&#45;&gt;chart_of_account:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1653.62,-1182.39C1877.12,-1302.47 1877.12,-1512.63 1411.12,-1512.63 951.49,-1512.63 945.2,-1424.92 1159.57,-1307.3"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1161.5,-1310.23 1168.62,-1302.39 1158.16,-1304.08 1161.5,-1310.23"/>
<text text-anchor="middle" x="1159.72" y="-1311.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1647.39" y="-1153.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1464.82,-1182.39C1640.82,-1302.47 1640.82,-1512.63 1222.32,-1512.63 810.77,-1512.63 803.93,-1425.44 971.2,-1308.34"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="973.58,-1310.95 979.82,-1302.39 969.6,-1305.19 973.58,-1310.95"/>
<text text-anchor="middle" x="970.92" y="-1311.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1458.6" y="-1153.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- elimination_rule -->
<g id="elimination_rule" class="node">
<title>elimination_rule</title>
<g id="a_elimination_rule"><a xlink:title="elimination_rule&#10;Правило элиминации. Состав счетов — в elimination_rule_account">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1410.62" cy="-2169.39" rx="379.93" ry="639.45"/>
<polygon fill="#1d71b8" stroke="transparent" points="1144.62,-2559.39 1144.62,-2619.39 1677.62,-2619.39 1677.62,-2559.39 1144.62,-2559.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2559.39 1144.62,-2619.39 1677.62,-2619.39 1677.62,-2559.39 1144.62,-2559.39"/>
<text text-anchor="start" x="1236.86" y="-2580.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;elimination_rule &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2499.39 1144.62,-2559.39 1677.62,-2559.39 1677.62,-2499.39 1144.62,-2499.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2499.39 1144.62,-2559.39 1677.62,-2559.39 1677.62,-2499.39 1144.62,-2499.39"/>
<text text-anchor="start" x="1155.62" y="-2520.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1180.51" y="-2520.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1606.15" y="-2520.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2439.39 1144.62,-2499.39 1677.62,-2499.39 1677.62,-2439.39 1144.62,-2439.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2439.39 1144.62,-2499.39 1677.62,-2499.39 1677.62,-2439.39 1144.62,-2439.39"/>
<text text-anchor="start" x="1155.46" y="-2459.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">statement_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1409.2" y="-2460.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">statement_type</text>
<text text-anchor="start" x="1627.94" y="-2460.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.84" y="-2460.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2379.39 1144.62,-2439.39 1677.62,-2439.39 1677.62,-2379.39 1144.62,-2379.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2379.39 1144.62,-2439.39 1677.62,-2439.39 1677.62,-2379.39 1144.62,-2379.39"/>
<text text-anchor="start" x="1155.62" y="-2399.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">rule_no &#160;&#160;&#160;</text>
<text text-anchor="start" x="1519.1" y="-2400.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<text text-anchor="start" x="1627.52" y="-2400.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-2400.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2319.39 1144.62,-2379.39 1677.62,-2379.39 1677.62,-2319.39 1144.62,-2319.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2319.39 1144.62,-2379.39 1677.62,-2379.39 1677.62,-2319.39 1144.62,-2319.39"/>
<text text-anchor="start" x="1155.62" y="-2339.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">article_1_line &#160;&#160;&#160;</text>
<text text-anchor="start" x="1520.85" y="-2340.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1627.52" y="-2340.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-2340.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2259.39 1144.62,-2319.39 1677.62,-2319.39 1677.62,-2259.39 1144.62,-2259.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2259.39 1144.62,-2319.39 1677.62,-2319.39 1677.62,-2259.39 1144.62,-2259.39"/>
<text text-anchor="start" x="1155.62" y="-2279.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">article_2_line &#160;&#160;&#160;</text>
<text text-anchor="start" x="1520.85" y="-2280.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1627.52" y="-2280.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-2280.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2199.39 1144.62,-2259.39 1677.62,-2259.39 1677.62,-2199.39 1144.62,-2199.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2199.39 1144.62,-2259.39 1677.62,-2259.39 1677.62,-2199.39 1144.62,-2199.39"/>
<text text-anchor="start" x="1155.62" y="-2219.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">side_1 &#160;&#160;&#160;</text>
<text text-anchor="start" x="1520.85" y="-2220.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1627.52" y="-2220.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-2220.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2139.39 1144.62,-2199.39 1677.62,-2199.39 1677.62,-2139.39 1144.62,-2139.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2139.39 1144.62,-2199.39 1677.62,-2199.39 1677.62,-2139.39 1144.62,-2139.39"/>
<text text-anchor="start" x="1155.62" y="-2159.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">measure &#160;&#160;&#160;</text>
<text text-anchor="start" x="1520.85" y="-2160.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1627.52" y="-2160.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-2160.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2079.39 1144.62,-2139.39 1677.62,-2139.39 1677.62,-2079.39 1144.62,-2079.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2079.39 1144.62,-2139.39 1677.62,-2139.39 1677.62,-2079.39 1144.62,-2079.39"/>
<text text-anchor="start" x="1155.62" y="-2099.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">elimination_mode &#160;&#160;&#160;</text>
<text text-anchor="start" x="1520.85" y="-2100.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1627.52" y="-2100.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-2100.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-2019.39 1144.62,-2079.39 1677.62,-2079.39 1677.62,-2019.39 1144.62,-2019.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-2019.39 1144.62,-2079.39 1677.62,-2079.39 1677.62,-2019.39 1144.62,-2019.39"/>
<text text-anchor="start" x="1155.62" y="-2039.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">vat_handling &#160;&#160;&#160;</text>
<text text-anchor="start" x="1559.94" y="-2040.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-1959.39 1144.62,-2019.39 1677.62,-2019.39 1677.62,-1959.39 1144.62,-1959.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-1959.39 1144.62,-2019.39 1677.62,-2019.39 1677.62,-1959.39 1144.62,-1959.39"/>
<text text-anchor="start" x="1155.62" y="-1979.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">excise_adjust &#160;&#160;&#160;</text>
<text text-anchor="start" x="1513.69" y="-1980.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1627.52" y="-1980.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-1980.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-1899.39 1144.62,-1959.39 1677.62,-1959.39 1677.62,-1899.39 1144.62,-1899.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-1899.39 1144.62,-1959.39 1677.62,-1959.39 1677.62,-1899.39 1144.62,-1899.39"/>
<text text-anchor="start" x="1155.62" y="-1919.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">comment &#160;&#160;&#160;</text>
<text text-anchor="start" x="1615.04" y="-1920.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">text</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-1839.39 1144.62,-1899.39 1677.62,-1899.39 1677.62,-1839.39 1144.62,-1839.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-1839.39 1144.62,-1899.39 1677.62,-1899.39 1677.62,-1839.39 1144.62,-1839.39"/>
<text text-anchor="start" x="1155.62" y="-1859.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">version_no &#160;&#160;&#160;</text>
<text text-anchor="start" x="1593.74" y="-1860.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="1627.52" y="-1860.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-1860.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-1779.39 1144.62,-1839.39 1677.62,-1839.39 1677.62,-1779.39 1144.62,-1779.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-1779.39 1144.62,-1839.39 1677.62,-1839.39 1677.62,-1779.39 1144.62,-1779.39"/>
<text text-anchor="start" x="1155.62" y="-1799.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">valid_from &#160;&#160;&#160;</text>
<text text-anchor="start" x="1565.27" y="-1800.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<text text-anchor="start" x="1627.52" y="-1800.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1636.42" y="-1800.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1144.62,-1719.39 1144.62,-1779.39 1677.62,-1779.39 1677.62,-1719.39 1144.62,-1719.39"/>
<polygon fill="none" stroke="#29235c" points="1144.62,-1719.39 1144.62,-1779.39 1677.62,-1779.39 1677.62,-1719.39 1144.62,-1719.39"/>
<text text-anchor="start" x="1155.62" y="-1739.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">valid_to &#160;&#160;&#160;</text>
<text text-anchor="start" x="1604.36" y="-1740.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1143.12,-1718.39 1143.12,-2620.39 1678.12,-2620.39 1678.12,-1718.39 1143.12,-1718.39"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1221.82" cy="-2169.39" rx="379.93" ry="639.45"/>
<polygon fill="#1d71b8" stroke="transparent" points="955.82,-2559.39 955.82,-2619.39 1488.82,-2619.39 1488.82,-2559.39 955.82,-2559.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2559.39 955.82,-2619.39 1488.82,-2619.39 1488.82,-2559.39 955.82,-2559.39"/>
<text text-anchor="start" x="1048.06" y="-2580.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;elimination_rule &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2499.39 955.82,-2559.39 1488.82,-2559.39 1488.82,-2499.39 955.82,-2499.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2499.39 955.82,-2559.39 1488.82,-2559.39 1488.82,-2499.39 955.82,-2499.39"/>
<text text-anchor="start" x="966.82" y="-2520.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="991.71" y="-2520.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1417.35" y="-2520.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2439.39 955.82,-2499.39 1488.82,-2499.39 1488.82,-2439.39 955.82,-2439.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2439.39 955.82,-2499.39 1488.82,-2499.39 1488.82,-2439.39 955.82,-2439.39"/>
<text text-anchor="start" x="966.66" y="-2459.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">statement_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1220.4" y="-2460.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">statement_type</text>
<text text-anchor="start" x="1439.15" y="-2460.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1448.04" y="-2460.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2379.39 955.82,-2439.39 1488.82,-2439.39 1488.82,-2379.39 955.82,-2379.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2379.39 955.82,-2439.39 1488.82,-2439.39 1488.82,-2379.39 955.82,-2379.39"/>
<text text-anchor="start" x="966.82" y="-2399.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">rule_no &#160;&#160;&#160;</text>
<text text-anchor="start" x="1330.3" y="-2400.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<text text-anchor="start" x="1438.73" y="-2400.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-2400.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2319.39 955.82,-2379.39 1488.82,-2379.39 1488.82,-2319.39 955.82,-2319.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2319.39 955.82,-2379.39 1488.82,-2379.39 1488.82,-2319.39 955.82,-2319.39"/>
<text text-anchor="start" x="966.82" y="-2339.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">article_1_line &#160;&#160;&#160;</text>
<text text-anchor="start" x="1332.05" y="-2340.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1438.73" y="-2340.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-2340.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2259.39 955.82,-2319.39 1488.82,-2319.39 1488.82,-2259.39 955.82,-2259.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2259.39 955.82,-2319.39 1488.82,-2319.39 1488.82,-2259.39 955.82,-2259.39"/>
<text text-anchor="start" x="966.82" y="-2279.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">article_2_line &#160;&#160;&#160;</text>
<text text-anchor="start" x="1332.05" y="-2280.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1438.73" y="-2280.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-2280.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2199.39 955.82,-2259.39 1488.82,-2259.39 1488.82,-2199.39 955.82,-2199.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2199.39 955.82,-2259.39 1488.82,-2259.39 1488.82,-2199.39 955.82,-2199.39"/>
<text text-anchor="start" x="966.82" y="-2219.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">side_1 &#160;&#160;&#160;</text>
<text text-anchor="start" x="1332.05" y="-2220.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1438.73" y="-2220.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-2220.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2139.39 955.82,-2199.39 1488.82,-2199.39 1488.82,-2139.39 955.82,-2139.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2139.39 955.82,-2199.39 1488.82,-2199.39 1488.82,-2139.39 955.82,-2139.39"/>
<text text-anchor="start" x="966.82" y="-2159.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">measure &#160;&#160;&#160;</text>
<text text-anchor="start" x="1332.05" y="-2160.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1438.73" y="-2160.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-2160.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2079.39 955.82,-2139.39 1488.82,-2139.39 1488.82,-2079.39 955.82,-2079.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2079.39 955.82,-2139.39 1488.82,-2139.39 1488.82,-2079.39 955.82,-2079.39"/>
<text text-anchor="start" x="966.82" y="-2099.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">elimination_mode &#160;&#160;&#160;</text>
<text text-anchor="start" x="1332.05" y="-2100.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1438.73" y="-2100.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-2100.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-2019.39 955.82,-2079.39 1488.82,-2079.39 1488.82,-2019.39 955.82,-2019.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-2019.39 955.82,-2079.39 1488.82,-2079.39 1488.82,-2019.39 955.82,-2019.39"/>
<text text-anchor="start" x="966.82" y="-2039.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">vat_handling &#160;&#160;&#160;</text>
<text text-anchor="start" x="1371.15" y="-2040.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-1959.39 955.82,-2019.39 1488.82,-2019.39 1488.82,-1959.39 955.82,-1959.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-1959.39 955.82,-2019.39 1488.82,-2019.39 1488.82,-1959.39 955.82,-1959.39"/>
<text text-anchor="start" x="966.82" y="-1979.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">excise_adjust &#160;&#160;&#160;</text>
<text text-anchor="start" x="1324.89" y="-1980.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1438.73" y="-1980.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-1980.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-1899.39 955.82,-1959.39 1488.82,-1959.39 1488.82,-1899.39 955.82,-1899.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-1899.39 955.82,-1959.39 1488.82,-1959.39 1488.82,-1899.39 955.82,-1899.39"/>
<text text-anchor="start" x="966.82" y="-1919.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">comment &#160;&#160;&#160;</text>
<text text-anchor="start" x="1426.24" y="-1920.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">text</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-1839.39 955.82,-1899.39 1488.82,-1899.39 1488.82,-1839.39 955.82,-1839.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-1839.39 955.82,-1899.39 1488.82,-1899.39 1488.82,-1839.39 955.82,-1839.39"/>
<text text-anchor="start" x="966.82" y="-1859.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">version_no &#160;&#160;&#160;</text>
<text text-anchor="start" x="1404.94" y="-1860.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<text text-anchor="start" x="1438.73" y="-1860.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-1860.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-1779.39 955.82,-1839.39 1488.82,-1839.39 1488.82,-1779.39 955.82,-1779.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-1779.39 955.82,-1839.39 1488.82,-1839.39 1488.82,-1779.39 955.82,-1779.39"/>
<text text-anchor="start" x="966.82" y="-1799.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">valid_from &#160;&#160;&#160;</text>
<text text-anchor="start" x="1376.47" y="-1800.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<text text-anchor="start" x="1438.73" y="-1800.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1447.62" y="-1800.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="955.82,-1719.39 955.82,-1779.39 1488.82,-1779.39 1488.82,-1719.39 955.82,-1719.39"/>
<polygon fill="none" stroke="#29235c" points="955.82,-1719.39 955.82,-1779.39 1488.82,-1779.39 1488.82,-1719.39 955.82,-1719.39"/>
<text text-anchor="start" x="966.82" y="-1739.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">valid_to &#160;&#160;&#160;</text>
<text text-anchor="start" x="1415.56" y="-1740.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="954.32,-1718.39 954.32,-2620.39 1489.32,-2620.39 1489.32,-1718.39 954.32,-1718.39"/>
</a>
</g>
</g>
<!-- elimination_rule&#45;&gt;statement_type -->
<g id="edge11" class="edge">
<title>elimination_rule:e&#45;&gt;statement_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1678.62,-2469.39C1875.69,-2469.39 1924.96,-2469.39 2122.04,-2469.39"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1489.82,-2469.39C1602.99,-2469.39 1631.28,-2469.39 1744.45,-2469.39"/>
</g>
<!-- elimination_rule_account -->
<g id="elimination_rule_account" class="node">
@ -305,24 +305,24 @@
<!-- elimination_rule_account&#45;&gt;chart_of_account -->
<g id="edge6" class="edge">
<title>elimination_rule_account:e&#45;&gt;chart_of_account:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M654.05,-2002.39C883.59,-2002.39 698.55,-1700.5 842.1,-1521.39 949.02,-1387.98 991.58,-1305.65 1157.55,-1302.48"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1157.65,-1305.98 1167.62,-1302.39 1157.58,-1298.98 1157.65,-1305.98"/>
<text text-anchor="middle" x="1158.72" y="-1273.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="660.27" y="-2011.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M654.05,-2002.39C993.5,-2002.39 643.19,-1316.67 968.49,-1302.61"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="968.89,-1306.1 978.82,-1302.39 968.75,-1299.1 968.89,-1306.1"/>
<text text-anchor="middle" x="969.92" y="-1273.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="647.83" y="-2011.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- elimination_rule_account&#45;&gt;elimination_rule -->
<!-- elimination_rule_account&#45;&gt;elimination_rule -->
<g id="edge4" class="edge">
<title>elimination_rule_account:e&#45;&gt;elimination_rule:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M654.05,-2122.39C933.55,-2122.39 862.47,-2519.51 1133.41,-2529.21"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1133.56,-2532.71 1143.62,-2529.39 1133.68,-2525.71 1133.56,-2532.71"/>
<text text-anchor="middle" x="1134.72" y="-2538.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="660.27" y="-2131.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M654.05,-2122.39C875.46,-2122.39 734.46,-2516.77 944.55,-2529.09"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="944.72,-2532.6 954.82,-2529.39 944.92,-2525.6 944.72,-2532.6"/>
<text text-anchor="middle" x="945.92" y="-2538.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="647.83" y="-2131.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- required_document_rule -->
<g id="required_document_rule" class="node">
<title>required_document_rule</title>
<g id="a_required_document_rule"><a xlink:title="required_document_rule&#10;ADD ТЗ 5.1/6.2: состав обязательных документов по подходу — основа чек&#45;листа">
<g id="a_required_document_rule"><a xlink:title="required_document_rule&#10;ADD ТЗ 5.1/6.2: состав обязательных документов по подходу — основа чек&#45;листа. Выполнено = есть document CONFIRMED с таким типом/счётом за период у каждого ЮЛ периметра">
<ellipse fill="none" stroke="black" stroke-width="0" cx="403.05" cy="-1212.39" rx="403.1" ry="257.27"/>
<polygon fill="#1d71b8" stroke="transparent" points="120.05,-1332.39 120.05,-1392.39 686.05,-1392.39 686.05,-1332.39 120.05,-1332.39"/>
<polygon fill="none" stroke="#29235c" points="120.05,-1332.39 120.05,-1392.39 686.05,-1392.39 686.05,-1332.39 120.05,-1332.39"/>
@ -361,21 +361,21 @@
<!-- required_document_rule&#45;&gt;document_type -->
<g id="edge13" class="edge">
<title>required_document_rule:e&#45;&gt;document_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M687.05,-1182.39C987.94,-1182.39 672.68,-772.04 842.1,-523.39 893.09,-448.55 919.06,-407.39 1009.62,-407.39"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M687.05,-1182.39C987.94,-1182.39 663.73,-765.7 842.1,-523.39 902.27,-441.65 937.32,-407.39 1038.82,-407.39"/>
</g>
<!-- required_document_rule&#45;&gt;consolidation_approach -->
<g id="edge12" class="edge">
<title>required_document_rule:e&#45;&gt;consolidation_approach:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M687.05,-1242.39C894.81,-1242.39 688.03,-940.77 842.1,-801.39 952.5,-701.51 1018.74,-722.39 1167.62,-722.39"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M687.05,-1242.39C894.81,-1242.39 709.46,-961.3 842.1,-801.39 886.91,-747.37 908.64,-722.39 978.82,-722.39"/>
</g>
<!-- required_document_rule&#45;&gt;chart_of_account -->
<!-- required_document_rule&#45;&gt;chart_of_account -->
<g id="edge8" class="edge">
<title>required_document_rule:e&#45;&gt;chart_of_account:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M687.05,-1122.39C911.67,-1122.39 938.75,-1296.98 1157.4,-1302.26"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1157.57,-1305.77 1167.62,-1302.39 1157.66,-1298.77 1157.57,-1305.77"/>
<text text-anchor="middle" x="1176.51" y="-1273.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="693.27" y="-1093.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M687.05,-1122.39C835.99,-1122.39 826.95,-1294.39 968.8,-1302.12"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="968.73,-1305.62 978.82,-1302.39 968.92,-1298.62 968.73,-1305.62"/>
<text text-anchor="middle" x="987.71" y="-1273.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="680.83" y="-1093.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

After

Width:  |  Height:  |  Size: 452 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 KiB

After

Width:  |  Height:  |  Size: 323 KiB

View File

@ -4,69 +4,96 @@
<!-- Generated by graphviz version 2.47.0 (20210316.0004)
-->
<!-- Title: dbml Pages: 1 -->
<svg width="2325pt" height="2959pt"
viewBox="0.00 0.00 2325.39 2959.16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2955.16)">
<svg width="2339pt" height="2599pt"
viewBox="0.00 0.00 2338.51 2599.07" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2595.07)">
<title>dbml</title>
<!-- osv_group_type -->
<g id="osv_group_type" class="node">
<title>osv_group_type</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2050.1" cy="-2165.77" rx="267.07" ry="257.27"/>
<polygon fill="#29235c" stroke="transparent" points="1863.1,-2285.77 1863.1,-2345.77 2237.1,-2345.77 2237.1,-2285.77 1863.1,-2285.77"/>
<polygon fill="none" stroke="#29235c" points="1863.1,-2285.77 1863.1,-2345.77 2237.1,-2345.77 2237.1,-2285.77 1863.1,-2285.77"/>
<text text-anchor="start" x="1874.03" y="-2306.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;osv_group_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1863.1,-2225.77 1863.1,-2285.77 2237.1,-2285.77 2237.1,-2225.77 1863.1,-2225.77"/>
<polygon fill="none" stroke="#29235c" points="1863.1,-2225.77 1863.1,-2285.77 2237.1,-2285.77 2237.1,-2225.77 1863.1,-2225.77"/>
<text text-anchor="start" x="1935.44" y="-2246.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;ACCOUNT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1863.1,-2165.77 1863.1,-2225.77 2237.1,-2225.77 2237.1,-2165.77 1863.1,-2165.77"/>
<polygon fill="none" stroke="#29235c" points="1863.1,-2165.77 1863.1,-2225.77 2237.1,-2225.77 2237.1,-2165.77 1863.1,-2165.77"/>
<text text-anchor="start" x="1904.32" y="-2186.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DEPARTMENT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1863.1,-2105.77 1863.1,-2165.77 2237.1,-2165.77 2237.1,-2105.77 1863.1,-2105.77"/>
<polygon fill="none" stroke="#29235c" points="1863.1,-2105.77 1863.1,-2165.77 2237.1,-2165.77 2237.1,-2105.77 1863.1,-2105.77"/>
<text text-anchor="start" x="1882.1" y="-2126.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;COUNTERPARTY &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1863.1,-2045.77 1863.1,-2105.77 2237.1,-2105.77 2237.1,-2045.77 1863.1,-2045.77"/>
<polygon fill="none" stroke="#29235c" points="1863.1,-2045.77 1863.1,-2105.77 2237.1,-2105.77 2237.1,-2045.77 1863.1,-2045.77"/>
<text text-anchor="start" x="1925.66" y="-2066.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;CONTRACT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1863.1,-1985.77 1863.1,-2045.77 2237.1,-2045.77 2237.1,-1985.77 1863.1,-1985.77"/>
<polygon fill="none" stroke="#29235c" points="1863.1,-1985.77 1863.1,-2045.77 2237.1,-2045.77 2237.1,-1985.77 1863.1,-1985.77"/>
<text text-anchor="start" x="1958.54" y="-2006.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;OTHER &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1862.1,-1984.77 1862.1,-2346.77 2238.1,-2346.77 2238.1,-1984.77 1862.1,-1984.77"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1970.59" cy="-1561.39" rx="267.07" ry="257.27"/>
<polygon fill="#29235c" stroke="transparent" points="1783.59,-1681.39 1783.59,-1741.39 2157.59,-1741.39 2157.59,-1681.39 1783.59,-1681.39"/>
<polygon fill="none" stroke="#29235c" points="1783.59,-1681.39 1783.59,-1741.39 2157.59,-1741.39 2157.59,-1681.39 1783.59,-1681.39"/>
<text text-anchor="start" x="1794.52" y="-1702.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;osv_group_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1783.59,-1621.39 1783.59,-1681.39 2157.59,-1681.39 2157.59,-1621.39 1783.59,-1621.39"/>
<polygon fill="none" stroke="#29235c" points="1783.59,-1621.39 1783.59,-1681.39 2157.59,-1681.39 2157.59,-1621.39 1783.59,-1621.39"/>
<text text-anchor="start" x="1855.93" y="-1642.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;ACCOUNT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1783.59,-1561.39 1783.59,-1621.39 2157.59,-1621.39 2157.59,-1561.39 1783.59,-1561.39"/>
<polygon fill="none" stroke="#29235c" points="1783.59,-1561.39 1783.59,-1621.39 2157.59,-1621.39 2157.59,-1561.39 1783.59,-1561.39"/>
<text text-anchor="start" x="1824.81" y="-1582.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;DEPARTMENT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1783.59,-1501.39 1783.59,-1561.39 2157.59,-1561.39 2157.59,-1501.39 1783.59,-1501.39"/>
<polygon fill="none" stroke="#29235c" points="1783.59,-1501.39 1783.59,-1561.39 2157.59,-1561.39 2157.59,-1501.39 1783.59,-1501.39"/>
<text text-anchor="start" x="1802.59" y="-1522.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;COUNTERPARTY &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1783.59,-1441.39 1783.59,-1501.39 2157.59,-1501.39 2157.59,-1441.39 1783.59,-1441.39"/>
<polygon fill="none" stroke="#29235c" points="1783.59,-1441.39 1783.59,-1501.39 2157.59,-1501.39 2157.59,-1441.39 1783.59,-1441.39"/>
<text text-anchor="start" x="1846.15" y="-1462.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;CONTRACT &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1783.59,-1381.39 1783.59,-1441.39 2157.59,-1441.39 2157.59,-1381.39 1783.59,-1381.39"/>
<polygon fill="none" stroke="#29235c" points="1783.59,-1381.39 1783.59,-1441.39 2157.59,-1441.39 2157.59,-1381.39 1783.59,-1381.39"/>
<text text-anchor="start" x="1879.03" y="-1402.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;OTHER &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1782.59,-1380.39 1782.59,-1742.39 2158.59,-1742.39 2158.59,-1380.39 1782.59,-1380.39"/>
</g>
<!-- counterparty_match_kind -->
<g id="counterparty_match_kind" class="node">
<title>counterparty_match_kind</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1970.59" cy="-257.39" rx="359.83" ry="257.27"/>
<polygon fill="#29235c" stroke="transparent" points="1718.59,-377.39 1718.59,-437.39 2223.59,-437.39 2223.59,-377.39 1718.59,-377.39"/>
<polygon fill="none" stroke="#29235c" points="1718.59,-377.39 1718.59,-437.39 2223.59,-437.39 2223.59,-377.39 1718.59,-377.39"/>
<text text-anchor="start" x="1729.24" y="-398.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;counterparty_match_kind &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1718.59,-317.39 1718.59,-377.39 2223.59,-377.39 2223.59,-317.39 1718.59,-317.39"/>
<polygon fill="none" stroke="#29235c" points="1718.59,-317.39 1718.59,-377.39 2223.59,-377.39 2223.59,-317.39 1718.59,-317.39"/>
<text text-anchor="start" x="1907.97" y="-338.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;INN &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1718.59,-257.39 1718.59,-317.39 2223.59,-317.39 2223.59,-257.39 1718.59,-257.39"/>
<polygon fill="none" stroke="#29235c" points="1718.59,-257.39 1718.59,-317.39 2223.59,-317.39 2223.59,-257.39 1718.59,-257.39"/>
<text text-anchor="start" x="1889.3" y="-278.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;NAME &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1718.59,-197.39 1718.59,-257.39 2223.59,-257.39 2223.59,-197.39 1718.59,-197.39"/>
<polygon fill="none" stroke="#29235c" points="1718.59,-197.39 1718.59,-257.39 2223.59,-257.39 2223.59,-197.39 1718.59,-197.39"/>
<text text-anchor="start" x="1890.17" y="-218.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;ALIAS &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1718.59,-137.39 1718.59,-197.39 2223.59,-197.39 2223.59,-137.39 1718.59,-137.39"/>
<polygon fill="none" stroke="#29235c" points="1718.59,-137.39 1718.59,-197.39 2223.59,-197.39 2223.59,-137.39 1718.59,-137.39"/>
<text text-anchor="start" x="1868.86" y="-158.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;MANUAL &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1718.59,-77.39 1718.59,-137.39 2223.59,-137.39 2223.59,-77.39 1718.59,-77.39"/>
<polygon fill="none" stroke="#29235c" points="1718.59,-77.39 1718.59,-137.39 2223.59,-137.39 2223.59,-77.39 1718.59,-77.39"/>
<text text-anchor="start" x="1824.4" y="-98.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;PROPAGATED &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1717.09,-76.39 1717.09,-438.39 2224.09,-438.39 2224.09,-76.39 1717.09,-76.39"/>
</g>
<!-- osv_data_type -->
<g id="osv_data_type" class="node">
<title>osv_data_type</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1402.46" cy="-1263.77" rx="253.29" ry="214.92"/>
<polygon fill="#29235c" stroke="transparent" points="1225.46,-1353.77 1225.46,-1413.77 1579.46,-1413.77 1579.46,-1353.77 1225.46,-1353.77"/>
<polygon fill="none" stroke="#29235c" points="1225.46,-1353.77 1225.46,-1413.77 1579.46,-1413.77 1579.46,-1353.77 1225.46,-1353.77"/>
<text text-anchor="start" x="1236.16" y="-1374.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;osv_data_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1225.46,-1293.77 1225.46,-1353.77 1579.46,-1353.77 1579.46,-1293.77 1225.46,-1293.77"/>
<polygon fill="none" stroke="#29235c" points="1225.46,-1293.77 1225.46,-1353.77 1579.46,-1353.77 1579.46,-1293.77 1225.46,-1293.77"/>
<text text-anchor="start" x="1344.66" y="-1314.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1225.46,-1233.77 1225.46,-1293.77 1579.46,-1293.77 1579.46,-1233.77 1225.46,-1233.77"/>
<polygon fill="none" stroke="#29235c" points="1225.46,-1233.77 1225.46,-1293.77 1579.46,-1293.77 1579.46,-1233.77 1225.46,-1233.77"/>
<text text-anchor="start" x="1276.24" y="-1254.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;CURRENCY &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1225.46,-1173.77 1225.46,-1233.77 1579.46,-1233.77 1579.46,-1173.77 1225.46,-1173.77"/>
<polygon fill="none" stroke="#29235c" points="1225.46,-1173.77 1225.46,-1233.77 1579.46,-1233.77 1579.46,-1173.77 1225.46,-1173.77"/>
<text text-anchor="start" x="1286" y="-1194.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;QUANTITY &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1225.46,-1113.77 1225.46,-1173.77 1579.46,-1173.77 1579.46,-1113.77 1225.46,-1113.77"/>
<polygon fill="none" stroke="#29235c" points="1225.46,-1113.77 1225.46,-1173.77 1579.46,-1173.77 1579.46,-1113.77 1225.46,-1113.77"/>
<text text-anchor="start" x="1331.34" y="-1134.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;SUM &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1224.46,-1112.77 1224.46,-1414.77 1580.46,-1414.77 1580.46,-1112.77 1224.46,-1112.77"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1970.59" cy="-1028.39" rx="253.29" ry="257.27"/>
<polygon fill="#29235c" stroke="transparent" points="1793.59,-1148.39 1793.59,-1208.39 2147.59,-1208.39 2147.59,-1148.39 1793.59,-1148.39"/>
<polygon fill="none" stroke="#29235c" points="1793.59,-1148.39 1793.59,-1208.39 2147.59,-1208.39 2147.59,-1148.39 1793.59,-1148.39"/>
<text text-anchor="start" x="1804.29" y="-1169.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;osv_data_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1793.59,-1088.39 1793.59,-1148.39 2147.59,-1148.39 2147.59,-1088.39 1793.59,-1088.39"/>
<polygon fill="none" stroke="#29235c" points="1793.59,-1088.39 1793.59,-1148.39 2147.59,-1148.39 2147.59,-1088.39 1793.59,-1088.39"/>
<text text-anchor="start" x="1912.8" y="-1109.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1793.59,-1028.39 1793.59,-1088.39 2147.59,-1088.39 2147.59,-1028.39 1793.59,-1028.39"/>
<polygon fill="none" stroke="#29235c" points="1793.59,-1028.39 1793.59,-1088.39 2147.59,-1088.39 2147.59,-1028.39 1793.59,-1028.39"/>
<text text-anchor="start" x="1911.92" y="-1049.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;NU &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1793.59,-968.39 1793.59,-1028.39 2147.59,-1028.39 2147.59,-968.39 1793.59,-968.39"/>
<polygon fill="none" stroke="#29235c" points="1793.59,-968.39 1793.59,-1028.39 2147.59,-1028.39 2147.59,-968.39 1793.59,-968.39"/>
<text text-anchor="start" x="1844.38" y="-989.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;CURRENCY &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1793.59,-908.39 1793.59,-968.39 2147.59,-968.39 2147.59,-908.39 1793.59,-908.39"/>
<polygon fill="none" stroke="#29235c" points="1793.59,-908.39 1793.59,-968.39 2147.59,-968.39 2147.59,-908.39 1793.59,-908.39"/>
<text text-anchor="start" x="1854.14" y="-929.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;QUANTITY &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1793.59,-848.39 1793.59,-908.39 2147.59,-908.39 2147.59,-848.39 1793.59,-848.39"/>
<polygon fill="none" stroke="#29235c" points="1793.59,-848.39 1793.59,-908.39 2147.59,-908.39 2147.59,-848.39 1793.59,-848.39"/>
<text text-anchor="start" x="1899.47" y="-869.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;SUM &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1792.59,-847.39 1792.59,-1209.39 2148.59,-1209.39 2148.59,-847.39 1792.59,-847.39"/>
</g>
<!-- app_user -->
<g id="app_user" class="node">
<title>app_user</title>
<g id="a_app_user"><a xlink:title="app_user&#10;STUB — полное определение в part02_users_access">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1402.46" cy="-1584.77" rx="200.22" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1263.46,-1584.77 1263.46,-1644.77 1542.46,-1644.77 1542.46,-1584.77 1263.46,-1584.77"/>
<polygon fill="none" stroke="#29235c" points="1263.46,-1584.77 1263.46,-1644.77 1542.46,-1644.77 1542.46,-1584.77 1263.46,-1584.77"/>
<text text-anchor="start" x="1274.01" y="-1605.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;app_user &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1263.46,-1524.77 1263.46,-1584.77 1542.46,-1584.77 1542.46,-1524.77 1263.46,-1524.77"/>
<polygon fill="none" stroke="#29235c" points="1263.46,-1524.77 1263.46,-1584.77 1542.46,-1584.77 1542.46,-1524.77 1263.46,-1524.77"/>
<text text-anchor="start" x="1274.46" y="-1545.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1299.35" y="-1545.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1470.99" y="-1545.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1261.96,-1523.77 1261.96,-1645.77 1542.96,-1645.77 1542.96,-1523.77 1261.96,-1523.77"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1970.59" cy="-665.39" rx="200.22" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1831.59,-665.39 1831.59,-725.39 2110.59,-725.39 2110.59,-665.39 1831.59,-665.39"/>
<polygon fill="none" stroke="#29235c" points="1831.59,-665.39 1831.59,-725.39 2110.59,-725.39 2110.59,-665.39 1831.59,-665.39"/>
<text text-anchor="start" x="1842.15" y="-686.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;app_user &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1831.59,-605.39 1831.59,-665.39 2110.59,-665.39 2110.59,-605.39 1831.59,-605.39"/>
<polygon fill="none" stroke="#29235c" points="1831.59,-605.39 1831.59,-665.39 2110.59,-665.39 2110.59,-605.39 1831.59,-605.39"/>
<text text-anchor="start" x="1842.59" y="-626.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1867.48" y="-626.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2039.12" y="-626.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1830.09,-604.39 1830.09,-726.39 2111.09,-726.39 2111.09,-604.39 1830.09,-604.39"/>
</a>
</g>
</g>
@ -74,16 +101,33 @@
<g id="chart_of_account" class="node">
<title>chart_of_account</title>
<g id="a_chart_of_account"><a xlink:title="chart_of_account&#10;STUB — полное определение в part03_accounting_refs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1402.46" cy="-1777.77" rx="279.11" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1207.46,-1777.77 1207.46,-1837.77 1598.46,-1837.77 1598.46,-1777.77 1207.46,-1777.77"/>
<polygon fill="none" stroke="#29235c" points="1207.46,-1777.77 1207.46,-1837.77 1598.46,-1837.77 1598.46,-1777.77 1207.46,-1777.77"/>
<text text-anchor="start" x="1217.99" y="-1798.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;chart_of_account &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1207.46,-1717.77 1207.46,-1777.77 1598.46,-1777.77 1598.46,-1717.77 1207.46,-1717.77"/>
<polygon fill="none" stroke="#29235c" points="1207.46,-1717.77 1207.46,-1777.77 1598.46,-1777.77 1598.46,-1717.77 1207.46,-1717.77"/>
<text text-anchor="start" x="1218.46" y="-1738.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1243.35" y="-1738.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1526.99" y="-1738.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1205.96,-1716.77 1205.96,-1838.77 1598.96,-1838.77 1598.96,-1716.77 1205.96,-1716.77"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1970.59" cy="-1924.39" rx="279.11" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1775.59,-1924.39 1775.59,-1984.39 2166.59,-1984.39 2166.59,-1924.39 1775.59,-1924.39"/>
<polygon fill="none" stroke="#29235c" points="1775.59,-1924.39 1775.59,-1984.39 2166.59,-1984.39 2166.59,-1924.39 1775.59,-1924.39"/>
<text text-anchor="start" x="1786.12" y="-1945.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;chart_of_account &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1775.59,-1864.39 1775.59,-1924.39 2166.59,-1924.39 2166.59,-1864.39 1775.59,-1864.39"/>
<polygon fill="none" stroke="#29235c" points="1775.59,-1864.39 1775.59,-1924.39 2166.59,-1924.39 2166.59,-1864.39 1775.59,-1864.39"/>
<text text-anchor="start" x="1786.59" y="-1885.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1811.48" y="-1885.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2095.12" y="-1885.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1774.09,-1863.39 1774.09,-1985.39 2167.09,-1985.39 2167.09,-1863.39 1774.09,-1863.39"/>
</a>
</g>
</g>
<!-- document -->
<g id="document" class="node">
<title>document</title>
<g id="a_document"><a xlink:title="document&#10;STUB — полное определение в part04_files_jobs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1970.59" cy="-2310.39" rx="205.12" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1827.59,-2310.39 1827.59,-2370.39 2113.59,-2370.39 2113.59,-2310.39 1827.59,-2310.39"/>
<polygon fill="none" stroke="#29235c" points="1827.59,-2310.39 1827.59,-2370.39 2113.59,-2370.39 2113.59,-2310.39 1827.59,-2310.39"/>
<text text-anchor="start" x="1838.1" y="-2331.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;document &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1827.59,-2250.39 1827.59,-2310.39 2113.59,-2310.39 2113.59,-2250.39 1827.59,-2250.39"/>
<polygon fill="none" stroke="#29235c" points="1827.59,-2250.39 1827.59,-2310.39 2113.59,-2310.39 2113.59,-2250.39 1827.59,-2250.39"/>
<text text-anchor="start" x="1838.59" y="-2271.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1863.48" y="-2271.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2042.12" y="-2271.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1826.59,-2249.39 1826.59,-2371.39 2114.59,-2371.39 2114.59,-2249.39 1826.59,-2249.39"/>
</a>
</g>
</g>
@ -91,16 +135,16 @@
<g id="legal_entity" class="node">
<title>legal_entity</title>
<g id="a_legal_entity"><a xlink:title="legal_entity&#10;STUB — полное определение в part01_groups_entities">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1402.46" cy="-1970.77" rx="220.73" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1248.46,-1970.77 1248.46,-2030.77 1556.46,-2030.77 1556.46,-1970.77 1248.46,-1970.77"/>
<polygon fill="none" stroke="#29235c" points="1248.46,-1970.77 1248.46,-2030.77 1556.46,-2030.77 1556.46,-1970.77 1248.46,-1970.77"/>
<text text-anchor="start" x="1259.3" y="-1991.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;legal_entity &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1248.46,-1910.77 1248.46,-1970.77 1556.46,-1970.77 1556.46,-1910.77 1248.46,-1910.77"/>
<polygon fill="none" stroke="#29235c" points="1248.46,-1910.77 1248.46,-1970.77 1556.46,-1970.77 1556.46,-1910.77 1248.46,-1910.77"/>
<text text-anchor="start" x="1259.46" y="-1931.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1284.35" y="-1931.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1484.99" y="-1931.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1247.46,-1909.77 1247.46,-2031.77 1557.46,-2031.77 1557.46,-1909.77 1247.46,-1909.77"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1970.59" cy="-2117.39" rx="220.73" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1816.59,-2117.39 1816.59,-2177.39 2124.59,-2177.39 2124.59,-2117.39 1816.59,-2117.39"/>
<polygon fill="none" stroke="#29235c" points="1816.59,-2117.39 1816.59,-2177.39 2124.59,-2177.39 2124.59,-2117.39 1816.59,-2117.39"/>
<text text-anchor="start" x="1827.43" y="-2138.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;legal_entity &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1816.59,-2057.39 1816.59,-2117.39 2124.59,-2117.39 2124.59,-2057.39 1816.59,-2057.39"/>
<polygon fill="none" stroke="#29235c" points="1816.59,-2057.39 1816.59,-2117.39 2124.59,-2117.39 2124.59,-2057.39 1816.59,-2057.39"/>
<text text-anchor="start" x="1827.59" y="-2078.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1852.48" y="-2078.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2053.12" y="-2078.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1815.59,-2056.39 1815.59,-2178.39 2125.59,-2178.39 2125.59,-2056.39 1815.59,-2056.39"/>
</a>
</g>
</g>
@ -108,302 +152,233 @@
<g id="recognition_job" class="node">
<title>recognition_job</title>
<g id="a_recognition_job"><a xlink:title="recognition_job&#10;STUB — полное определение в part04_files_jobs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="2050.1" cy="-2630.77" rx="259.52" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1869.1,-2630.77 1869.1,-2690.77 2232.1,-2690.77 2232.1,-2630.77 1869.1,-2630.77"/>
<polygon fill="none" stroke="#29235c" points="1869.1,-2630.77 1869.1,-2690.77 2232.1,-2690.77 2232.1,-2630.77 1869.1,-2630.77"/>
<text text-anchor="start" x="1879.88" y="-2651.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;recognition_job &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1869.1,-2570.77 1869.1,-2630.77 2232.1,-2630.77 2232.1,-2570.77 1869.1,-2570.77"/>
<polygon fill="none" stroke="#29235c" points="1869.1,-2570.77 1869.1,-2630.77 2232.1,-2630.77 2232.1,-2570.77 1869.1,-2570.77"/>
<text text-anchor="start" x="1880.1" y="-2591.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1904.99" y="-2591.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2160.64" y="-2591.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1867.6,-2569.77 1867.6,-2691.77 2232.6,-2691.77 2232.6,-2569.77 1867.6,-2569.77"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1970.59" cy="-2503.39" rx="259.52" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1789.59,-2503.39 1789.59,-2563.39 2152.59,-2563.39 2152.59,-2503.39 1789.59,-2503.39"/>
<polygon fill="none" stroke="#29235c" points="1789.59,-2503.39 1789.59,-2563.39 2152.59,-2563.39 2152.59,-2503.39 1789.59,-2503.39"/>
<text text-anchor="start" x="1800.37" y="-2524.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;recognition_job &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1789.59,-2443.39 1789.59,-2503.39 2152.59,-2503.39 2152.59,-2443.39 1789.59,-2443.39"/>
<polygon fill="none" stroke="#29235c" points="1789.59,-2443.39 1789.59,-2503.39 2152.59,-2503.39 2152.59,-2443.39 1789.59,-2443.39"/>
<text text-anchor="start" x="1800.59" y="-2464.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1825.48" y="-2464.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2081.12" y="-2464.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1788.09,-2442.39 1788.09,-2564.39 2153.09,-2564.39 2153.09,-2442.39 1788.09,-2442.39"/>
</a>
</g>
</g>
<!-- stored_file -->
<g id="stored_file" class="node">
<title>stored_file</title>
<g id="a_stored_file"><a xlink:title="stored_file&#10;STUB — полное определение в part04_files_jobs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1402.46" cy="-2819.77" rx="210.94" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1255.46,-2819.77 1255.46,-2879.77 1549.46,-2879.77 1549.46,-2819.77 1255.46,-2819.77"/>
<polygon fill="none" stroke="#29235c" points="1255.46,-2819.77 1255.46,-2879.77 1549.46,-2879.77 1549.46,-2819.77 1255.46,-2819.77"/>
<text text-anchor="start" x="1266.41" y="-2840.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;stored_file &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1255.46,-2759.77 1255.46,-2819.77 1549.46,-2819.77 1549.46,-2759.77 1255.46,-2759.77"/>
<polygon fill="none" stroke="#29235c" points="1255.46,-2759.77 1255.46,-2819.77 1549.46,-2819.77 1549.46,-2759.77 1255.46,-2759.77"/>
<text text-anchor="start" x="1266.46" y="-2780.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1291.35" y="-2780.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1477.99" y="-2780.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1254.46,-2758.77 1254.46,-2880.77 1550.46,-2880.77 1550.46,-2758.77 1254.46,-2758.77"/>
</a>
</g>
</g>
<!-- osv_group_schema -->
<g id="osv_group_schema" class="node">
<title>osv_group_schema</title>
<g id="a_osv_group_schema"><a xlink:title="osv_group_schema&#10;Схема группировок по шапке ОСВ (FNR01 «Парсинг ОСВ»)">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1402.46" cy="-2375.77" rx="344.22" ry="299.63"/>
<polygon fill="#1d71b8" stroke="transparent" points="1161.46,-2525.77 1161.46,-2585.77 1644.46,-2585.77 1644.46,-2525.77 1161.46,-2525.77"/>
<polygon fill="none" stroke="#29235c" points="1161.46,-2525.77 1161.46,-2585.77 1644.46,-2585.77 1644.46,-2525.77 1161.46,-2525.77"/>
<text text-anchor="start" x="1201.11" y="-2546.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;osv_group_schema &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1161.46,-2465.77 1161.46,-2525.77 1644.46,-2525.77 1644.46,-2465.77 1161.46,-2465.77"/>
<polygon fill="none" stroke="#29235c" points="1161.46,-2465.77 1161.46,-2525.77 1644.46,-2525.77 1644.46,-2465.77 1161.46,-2465.77"/>
<text text-anchor="start" x="1172.46" y="-2486.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1197.35" y="-2486.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1572.99" y="-2486.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1161.46,-2405.77 1161.46,-2465.77 1644.46,-2465.77 1644.46,-2405.77 1161.46,-2405.77"/>
<polygon fill="none" stroke="#29235c" points="1161.46,-2405.77 1161.46,-2465.77 1644.46,-2465.77 1644.46,-2405.77 1161.46,-2405.77"/>
<text text-anchor="start" x="1172.46" y="-2425.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">recognition_job_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1533.9" y="-2426.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1594.36" y="-2426.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1603.26" y="-2426.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1161.46,-2345.77 1161.46,-2405.77 1644.46,-2405.77 1644.46,-2345.77 1161.46,-2345.77"/>
<polygon fill="none" stroke="#29235c" points="1161.46,-2345.77 1161.46,-2405.77 1644.46,-2405.77 1644.46,-2345.77 1161.46,-2345.77"/>
<text text-anchor="start" x="1172.46" y="-2365.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">position &#160;&#160;&#160;</text>
<text text-anchor="start" x="1485.94" y="-2366.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<text text-anchor="start" x="1594.36" y="-2366.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1603.26" y="-2366.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1161.46,-2285.77 1161.46,-2345.77 1644.46,-2345.77 1644.46,-2285.77 1161.46,-2285.77"/>
<polygon fill="none" stroke="#29235c" points="1161.46,-2285.77 1161.46,-2345.77 1644.46,-2345.77 1644.46,-2285.77 1161.46,-2285.77"/>
<text text-anchor="start" x="1172.14" y="-2305.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1367.09" y="-2306.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">osv_group_type</text>
<text text-anchor="start" x="1594.73" y="-2306.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1603.63" y="-2306.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1161.46,-2225.77 1161.46,-2285.77 1644.46,-2285.77 1644.46,-2225.77 1161.46,-2225.77"/>
<polygon fill="none" stroke="#29235c" points="1161.46,-2225.77 1161.46,-2285.77 1644.46,-2285.77 1644.46,-2225.77 1161.46,-2225.77"/>
<text text-anchor="start" x="1172.46" y="-2245.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1487.69" y="-2246.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<text text-anchor="start" x="1594.36" y="-2246.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1603.26" y="-2246.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1161.46,-2165.77 1161.46,-2225.77 1644.46,-2225.77 1644.46,-2165.77 1161.46,-2165.77"/>
<polygon fill="none" stroke="#29235c" points="1161.46,-2165.77 1161.46,-2225.77 1644.46,-2225.77 1644.46,-2165.77 1161.46,-2165.77"/>
<text text-anchor="start" x="1172.46" y="-2185.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">has_inn &#160;&#160;&#160;</text>
<text text-anchor="start" x="1480.53" y="-2186.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1594.36" y="-2186.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1603.26" y="-2186.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1159.96,-2164.77 1159.96,-2586.77 1644.96,-2586.77 1644.96,-2164.77 1159.96,-2164.77"/>
</a>
</g>
</g>
<!-- osv_group_schema&#45;&gt;osv_group_type -->
<g id="edge19" class="edge">
<title>osv_group_schema:e&#45;&gt;osv_group_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1645.46,-2315.77C1741.74,-2315.77 1765.82,-2315.77 1862.1,-2315.77"/>
</g>
<!-- osv_group_schema&#45;&gt;recognition_job -->
<!-- osv_group_schema&#45;&gt;recognition_job -->
<g id="edge2" class="edge">
<title>osv_group_schema:e&#45;&gt;recognition_job:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1645.46,-2435.77C1765.13,-2435.77 1746.16,-2591.55 1857.99,-2600.38"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1857.98,-2603.88 1868.1,-2600.77 1858.25,-2596.89 1857.98,-2603.88"/>
<text text-anchor="middle" x="1859.21" y="-2610.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1651.68" y="-2445.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry -->
<g id="osv_entry" class="node">
<title>osv_entry</title>
<g id="a_osv_entry"><a xlink:title="osv_entry&#10;Строка ОСВ (все строки, всех типов). Правки сумм аналитиком — original_values/modified_by + audit_event(RECOGNIZED_DATA_EDIT, before/after)">
<ellipse fill="none" stroke="black" stroke-width="0" cx="689.05" cy="-1190.77" rx="333.09" ry="1190.54"/>
<polygon fill="#1d71b8" stroke="transparent" points="456.05,-1970.77 456.05,-2030.77 923.05,-2030.77 923.05,-1970.77 456.05,-1970.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1970.77 456.05,-2030.77 923.05,-2030.77 923.05,-1970.77 456.05,-1970.77"/>
<text text-anchor="start" x="557.95" y="-1991.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;osv_entry &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1910.77 456.05,-1970.77 923.05,-1970.77 923.05,-1910.77 456.05,-1910.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1910.77 456.05,-1970.77 923.05,-1970.77 923.05,-1910.77 456.05,-1910.77"/>
<text text-anchor="start" x="467.05" y="-1931.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="491.94" y="-1931.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="851.58" y="-1931.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1850.77 456.05,-1910.77 923.05,-1910.77 923.05,-1850.77 456.05,-1850.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1850.77 456.05,-1910.77 923.05,-1910.77 923.05,-1850.77 456.05,-1850.77"/>
<text text-anchor="start" x="467.05" y="-1870.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">recognition_job_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="812.49" y="-1871.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="872.96" y="-1871.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="881.85" y="-1871.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1790.77 456.05,-1850.77 923.05,-1850.77 923.05,-1790.77 456.05,-1790.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1790.77 456.05,-1850.77 923.05,-1850.77 923.05,-1790.77 456.05,-1790.77"/>
<text text-anchor="start" x="467.05" y="-1810.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">stored_file_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="812.49" y="-1811.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="872.96" y="-1811.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="881.85" y="-1811.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1730.77 456.05,-1790.77 923.05,-1790.77 923.05,-1730.77 456.05,-1730.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1730.77 456.05,-1790.77 923.05,-1790.77 923.05,-1730.77 456.05,-1730.77"/>
<text text-anchor="start" x="467.05" y="-1750.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">owner_legal_entity_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="812.49" y="-1751.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="872.96" y="-1751.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="881.85" y="-1751.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1670.77 456.05,-1730.77 923.05,-1730.77 923.05,-1670.77 456.05,-1670.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1670.77 456.05,-1730.77 923.05,-1730.77 923.05,-1670.77 456.05,-1670.77"/>
<text text-anchor="start" x="467.05" y="-1690.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">parent_entry_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="851.58" y="-1691.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1610.77 456.05,-1670.77 923.05,-1670.77 923.05,-1610.77 456.05,-1610.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1610.77 456.05,-1670.77 923.05,-1670.77 923.05,-1610.77 456.05,-1610.77"/>
<text text-anchor="start" x="467.05" y="-1630.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_schema_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="851.58" y="-1631.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1550.77 456.05,-1610.77 923.05,-1610.77 923.05,-1550.77 456.05,-1550.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1550.77 456.05,-1610.77 923.05,-1610.77 923.05,-1550.77 456.05,-1550.77"/>
<text text-anchor="start" x="467.05" y="-1570.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">row_number &#160;&#160;&#160;</text>
<text text-anchor="start" x="878.26" y="-1571.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1490.77 456.05,-1550.77 923.05,-1550.77 923.05,-1490.77 456.05,-1490.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1490.77 456.05,-1550.77 923.05,-1550.77 923.05,-1490.77 456.05,-1490.77"/>
<text text-anchor="start" x="467.05" y="-1510.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">level &#160;&#160;&#160;</text>
<text text-anchor="start" x="803.62" y="-1511.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1430.77 456.05,-1490.77 923.05,-1490.77 923.05,-1430.77 456.05,-1430.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1430.77 456.05,-1490.77 923.05,-1490.77 923.05,-1430.77 456.05,-1430.77"/>
<text text-anchor="start" x="467.05" y="-1450.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">row_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="805.38" y="-1451.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1370.77 456.05,-1430.77 923.05,-1430.77 923.05,-1370.77 456.05,-1370.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1370.77 456.05,-1430.77 923.05,-1430.77 923.05,-1370.77 456.05,-1370.77"/>
<text text-anchor="start" x="467.05" y="-1390.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">data_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="703.95" y="-1391.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">osv_data_type</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1310.77 456.05,-1370.77 923.05,-1370.77 923.05,-1310.77 456.05,-1310.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1310.77 456.05,-1370.77 923.05,-1370.77 923.05,-1310.77 456.05,-1310.77"/>
<text text-anchor="start" x="467.05" y="-1330.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">account_code &#160;&#160;&#160;</text>
<text text-anchor="start" x="805.38" y="-1331.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1250.77 456.05,-1310.77 923.05,-1310.77 923.05,-1250.77 456.05,-1250.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1250.77 456.05,-1310.77 923.05,-1310.77 923.05,-1250.77 456.05,-1250.77"/>
<text text-anchor="start" x="467.05" y="-1270.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">account_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="851.58" y="-1271.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1190.77 456.05,-1250.77 923.05,-1250.77 923.05,-1190.77 456.05,-1190.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1190.77 456.05,-1250.77 923.05,-1250.77 923.05,-1190.77 456.05,-1190.77"/>
<text text-anchor="start" x="467.05" y="-1210.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">account_root &#160;&#160;&#160;</text>
<text text-anchor="start" x="805.38" y="-1211.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1130.77 456.05,-1190.77 923.05,-1190.77 923.05,-1130.77 456.05,-1130.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1130.77 456.05,-1190.77 923.05,-1190.77 923.05,-1130.77 456.05,-1130.77"/>
<text text-anchor="start" x="467.05" y="-1150.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">counterparty_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="805.38" y="-1151.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1070.77 456.05,-1130.77 923.05,-1130.77 923.05,-1070.77 456.05,-1070.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1070.77 456.05,-1130.77 923.05,-1130.77 923.05,-1070.77 456.05,-1070.77"/>
<text text-anchor="start" x="467.05" y="-1090.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">counterparty_inn &#160;&#160;&#160;</text>
<text text-anchor="start" x="805.38" y="-1091.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-1010.77 456.05,-1070.77 923.05,-1070.77 923.05,-1010.77 456.05,-1010.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-1010.77 456.05,-1070.77 923.05,-1070.77 923.05,-1010.77 456.05,-1010.77"/>
<text text-anchor="start" x="467.05" y="-1030.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">counterparty_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="851.58" y="-1031.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-950.77 456.05,-1010.77 923.05,-1010.77 923.05,-950.77 456.05,-950.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-950.77 456.05,-1010.77 923.05,-1010.77 923.05,-950.77 456.05,-950.77"/>
<text text-anchor="start" x="467.05" y="-970.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">opening_debit &#160;&#160;&#160;</text>
<text text-anchor="start" x="714.71" y="-971.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-890.77 456.05,-950.77 923.05,-950.77 923.05,-890.77 456.05,-890.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-890.77 456.05,-950.77 923.05,-950.77 923.05,-890.77 456.05,-890.77"/>
<text text-anchor="start" x="467.05" y="-910.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">opening_credit &#160;&#160;&#160;</text>
<text text-anchor="start" x="714.71" y="-911.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-830.77 456.05,-890.77 923.05,-890.77 923.05,-830.77 456.05,-830.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-830.77 456.05,-890.77 923.05,-890.77 923.05,-830.77 456.05,-830.77"/>
<text text-anchor="start" x="467.05" y="-850.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">turnover_debit &#160;&#160;&#160;</text>
<text text-anchor="start" x="714.71" y="-851.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-770.77 456.05,-830.77 923.05,-830.77 923.05,-770.77 456.05,-770.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-770.77 456.05,-830.77 923.05,-830.77 923.05,-770.77 456.05,-770.77"/>
<text text-anchor="start" x="466.58" y="-790.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">turnover_credit &#160;&#160;&#160;</text>
<text text-anchor="start" x="714.88" y="-791.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-710.77 456.05,-770.77 923.05,-770.77 923.05,-710.77 456.05,-710.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-710.77 456.05,-770.77 923.05,-770.77 923.05,-710.77 456.05,-710.77"/>
<text text-anchor="start" x="467.05" y="-730.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">closing_debit &#160;&#160;&#160;</text>
<text text-anchor="start" x="714.71" y="-731.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-650.77 456.05,-710.77 923.05,-710.77 923.05,-650.77 456.05,-650.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-650.77 456.05,-710.77 923.05,-710.77 923.05,-650.77 456.05,-650.77"/>
<text text-anchor="start" x="467.05" y="-670.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">closing_credit &#160;&#160;&#160;</text>
<text text-anchor="start" x="714.71" y="-671.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-590.77 456.05,-650.77 923.05,-650.77 923.05,-590.77 456.05,-590.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-590.77 456.05,-650.77 923.05,-650.77 923.05,-590.77 456.05,-590.77"/>
<text text-anchor="start" x="467.05" y="-610.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="759.12" y="-611.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="872.96" y="-611.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="881.85" y="-611.97" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-530.77 456.05,-590.77 923.05,-590.77 923.05,-530.77 456.05,-530.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-530.77 456.05,-590.77 923.05,-590.77 923.05,-530.77 456.05,-530.77"/>
<text text-anchor="start" x="467.05" y="-550.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">original_values &#160;&#160;&#160;</text>
<text text-anchor="start" x="835.58" y="-551.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">jsonb</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-470.77 456.05,-530.77 923.05,-530.77 923.05,-470.77 456.05,-470.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-470.77 456.05,-530.77 923.05,-530.77 923.05,-470.77 456.05,-470.77"/>
<text text-anchor="start" x="467.05" y="-490.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">modified_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="851.58" y="-491.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-410.77 456.05,-470.77 923.05,-470.77 923.05,-410.77 456.05,-410.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-410.77 456.05,-470.77 923.05,-470.77 923.05,-410.77 456.05,-410.77"/>
<text text-anchor="start" x="467.05" y="-430.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">modified_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="739.6" y="-431.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="#e7e2dd" stroke="transparent" points="456.05,-350.77 456.05,-410.77 923.05,-410.77 923.05,-350.77 456.05,-350.77"/>
<polygon fill="none" stroke="#29235c" points="456.05,-350.77 456.05,-410.77 923.05,-410.77 923.05,-350.77 456.05,-350.77"/>
<text text-anchor="start" x="467.05" y="-370.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_excisable &#160;&#160;&#160;</text>
<text text-anchor="start" x="798.21" y="-371.97" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="454.55,-349.77 454.55,-2031.77 923.55,-2031.77 923.55,-349.77 454.55,-349.77"/>
<g id="a_osv_entry"><a xlink:title="osv_entry&#10;Строка ОСВ. Правки сумм аналитиком — original_values/modified_by + audit_event(RECOGNIZED_DATA_EDIT, before/after)">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1023.84" cy="-1277.39" rx="550.67" ry="1275.74"/>
<polygon fill="#1d71b8" stroke="transparent" points="636.84,-2117.39 636.84,-2177.39 1411.84,-2177.39 1411.84,-2117.39 636.84,-2117.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-2117.39 636.84,-2177.39 1411.84,-2177.39 1411.84,-2117.39 636.84,-2117.39"/>
<text text-anchor="start" x="892.74" y="-2138.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;osv_entry &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-2057.39 636.84,-2117.39 1411.84,-2117.39 1411.84,-2057.39 636.84,-2057.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-2057.39 636.84,-2117.39 1411.84,-2117.39 1411.84,-2057.39 636.84,-2057.39"/>
<text text-anchor="start" x="647.84" y="-2078.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="672.73" y="-2078.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1340.37" y="-2078.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1997.39 636.84,-2057.39 1411.84,-2057.39 1411.84,-1997.39 636.84,-1997.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1997.39 636.84,-2057.39 1411.84,-2057.39 1411.84,-1997.39 636.84,-1997.39"/>
<text text-anchor="start" x="647.84" y="-2017.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">recognition_job_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1301.28" y="-2018.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1361.74" y="-2018.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1370.64" y="-2018.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1937.39 636.84,-1997.39 1411.84,-1997.39 1411.84,-1937.39 636.84,-1937.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1937.39 636.84,-1997.39 1411.84,-1997.39 1411.84,-1937.39 636.84,-1937.39"/>
<text text-anchor="start" x="647.84" y="-1957.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">document_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1301.28" y="-1958.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1361.74" y="-1958.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1370.64" y="-1958.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1877.39 636.84,-1937.39 1411.84,-1937.39 1411.84,-1877.39 636.84,-1877.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1877.39 636.84,-1937.39 1411.84,-1937.39 1411.84,-1877.39 636.84,-1877.39"/>
<text text-anchor="start" x="647.84" y="-1897.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">owner_legal_entity_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1301.28" y="-1898.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1361.74" y="-1898.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1370.64" y="-1898.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1817.39 636.84,-1877.39 1411.84,-1877.39 1411.84,-1817.39 636.84,-1817.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1817.39 636.84,-1877.39 1411.84,-1877.39 1411.84,-1817.39 636.84,-1817.39"/>
<text text-anchor="start" x="647.84" y="-1837.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">parent_entry_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1340.37" y="-1838.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1757.39 636.84,-1817.39 1411.84,-1817.39 1411.84,-1757.39 636.84,-1757.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1757.39 636.84,-1817.39 1411.84,-1817.39 1411.84,-1757.39 636.84,-1757.39"/>
<text text-anchor="start" x="647.84" y="-1777.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1173.19" y="-1778.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">osv_group_type</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1697.39 636.84,-1757.39 1411.84,-1757.39 1411.84,-1697.39 636.84,-1697.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1697.39 636.84,-1757.39 1411.84,-1757.39 1411.84,-1697.39 636.84,-1697.39"/>
<text text-anchor="start" x="647.84" y="-1717.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">group_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1294.16" y="-1718.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1637.39 636.84,-1697.39 1411.84,-1697.39 1411.84,-1637.39 636.84,-1637.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1637.39 636.84,-1697.39 1411.84,-1697.39 1411.84,-1637.39 636.84,-1637.39"/>
<text text-anchor="start" x="647.84" y="-1657.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">row_number &#160;&#160;&#160;</text>
<text text-anchor="start" x="1367.05" y="-1658.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">int</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1577.39 636.84,-1637.39 1411.84,-1637.39 1411.84,-1577.39 636.84,-1577.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1577.39 636.84,-1637.39 1411.84,-1637.39 1411.84,-1577.39 636.84,-1577.39"/>
<text text-anchor="start" x="647.84" y="-1597.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">level &#160;&#160;&#160;</text>
<text text-anchor="start" x="1292.41" y="-1598.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1517.39 636.84,-1577.39 1411.84,-1577.39 1411.84,-1517.39 636.84,-1517.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1517.39 636.84,-1577.39 1411.84,-1577.39 1411.84,-1517.39 636.84,-1517.39"/>
<text text-anchor="start" x="647.84" y="-1537.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">row_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="1294.16" y="-1538.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1457.39 636.84,-1517.39 1411.84,-1517.39 1411.84,-1457.39 636.84,-1457.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1457.39 636.84,-1517.39 1411.84,-1517.39 1411.84,-1457.39 636.84,-1457.39"/>
<text text-anchor="start" x="647.84" y="-1477.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">data_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1192.74" y="-1478.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">osv_data_type</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1397.39 636.84,-1457.39 1411.84,-1457.39 1411.84,-1397.39 636.84,-1397.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1397.39 636.84,-1457.39 1411.84,-1457.39 1411.84,-1397.39 636.84,-1397.39"/>
<text text-anchor="start" x="647.84" y="-1417.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">account_code &#160;&#160;&#160;</text>
<text text-anchor="start" x="1294.16" y="-1418.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1337.39 636.84,-1397.39 1411.84,-1397.39 1411.84,-1337.39 636.84,-1337.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1337.39 636.84,-1397.39 1411.84,-1397.39 1411.84,-1337.39 636.84,-1337.39"/>
<text text-anchor="start" x="647.84" y="-1357.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">account_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1340.37" y="-1358.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1277.39 636.84,-1337.39 1411.84,-1337.39 1411.84,-1277.39 636.84,-1277.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1277.39 636.84,-1337.39 1411.84,-1337.39 1411.84,-1277.39 636.84,-1277.39"/>
<text text-anchor="start" x="647.84" y="-1297.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">account_root &#160;&#160;&#160;</text>
<text text-anchor="start" x="1294.16" y="-1298.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1217.39 636.84,-1277.39 1411.84,-1277.39 1411.84,-1217.39 636.84,-1217.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1217.39 636.84,-1277.39 1411.84,-1277.39 1411.84,-1217.39 636.84,-1217.39"/>
<text text-anchor="start" x="647.84" y="-1237.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">counterparty_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1294.16" y="-1238.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1157.39 636.84,-1217.39 1411.84,-1217.39 1411.84,-1157.39 636.84,-1157.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1157.39 636.84,-1217.39 1411.84,-1217.39 1411.84,-1157.39 636.84,-1157.39"/>
<text text-anchor="start" x="647.84" y="-1177.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">counterparty_inn &#160;&#160;&#160;</text>
<text text-anchor="start" x="1294.16" y="-1178.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1097.39 636.84,-1157.39 1411.84,-1157.39 1411.84,-1097.39 636.84,-1097.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1097.39 636.84,-1157.39 1411.84,-1157.39 1411.84,-1097.39 636.84,-1097.39"/>
<text text-anchor="start" x="647.84" y="-1117.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">counterparty_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1340.37" y="-1118.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-1037.39 636.84,-1097.39 1411.84,-1097.39 1411.84,-1037.39 636.84,-1037.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-1037.39 636.84,-1097.39 1411.84,-1097.39 1411.84,-1037.39 636.84,-1037.39"/>
<text text-anchor="start" x="647.84" y="-1057.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">opening_debit &#160;&#160;&#160;</text>
<text text-anchor="start" x="1203.5" y="-1058.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-977.39 636.84,-1037.39 1411.84,-1037.39 1411.84,-977.39 636.84,-977.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-977.39 636.84,-1037.39 1411.84,-1037.39 1411.84,-977.39 636.84,-977.39"/>
<text text-anchor="start" x="647.84" y="-997.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">opening_credit &#160;&#160;&#160;</text>
<text text-anchor="start" x="1203.5" y="-998.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-917.39 636.84,-977.39 1411.84,-977.39 1411.84,-917.39 636.84,-917.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-917.39 636.84,-977.39 1411.84,-977.39 1411.84,-917.39 636.84,-917.39"/>
<text text-anchor="start" x="647.84" y="-937.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">turnover_debit &#160;&#160;&#160;</text>
<text text-anchor="start" x="1203.5" y="-938.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-857.39 636.84,-917.39 1411.84,-917.39 1411.84,-857.39 636.84,-857.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-857.39 636.84,-917.39 1411.84,-917.39 1411.84,-857.39 636.84,-857.39"/>
<text text-anchor="start" x="647.84" y="-877.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">turnover_credit &#160;&#160;&#160;</text>
<text text-anchor="start" x="1203.5" y="-878.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-797.39 636.84,-857.39 1411.84,-857.39 1411.84,-797.39 636.84,-797.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-797.39 636.84,-857.39 1411.84,-857.39 1411.84,-797.39 636.84,-797.39"/>
<text text-anchor="start" x="647.84" y="-817.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">closing_debit &#160;&#160;&#160;</text>
<text text-anchor="start" x="1203.5" y="-818.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-737.39 636.84,-797.39 1411.84,-797.39 1411.84,-737.39 636.84,-737.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-737.39 636.84,-797.39 1411.84,-797.39 1411.84,-737.39 636.84,-737.39"/>
<text text-anchor="start" x="647.84" y="-757.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">closing_credit &#160;&#160;&#160;</text>
<text text-anchor="start" x="1203.5" y="-758.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-677.39 636.84,-737.39 1411.84,-737.39 1411.84,-677.39 636.84,-677.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-677.39 636.84,-737.39 1411.84,-737.39 1411.84,-677.39 636.84,-677.39"/>
<text text-anchor="start" x="647.84" y="-697.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="1247.91" y="-698.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="1361.74" y="-698.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1370.64" y="-698.59" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-617.39 636.84,-677.39 1411.84,-677.39 1411.84,-617.39 636.84,-617.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-617.39 636.84,-677.39 1411.84,-677.39 1411.84,-617.39 636.84,-617.39"/>
<text text-anchor="start" x="647.84" y="-637.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">original_values &#160;&#160;&#160;</text>
<text text-anchor="start" x="1324.37" y="-638.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">jsonb</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-557.39 636.84,-617.39 1411.84,-617.39 1411.84,-557.39 636.84,-557.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-557.39 636.84,-617.39 1411.84,-617.39 1411.84,-557.39 636.84,-557.39"/>
<text text-anchor="start" x="647.84" y="-577.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">modified_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="1340.37" y="-578.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-497.39 636.84,-557.39 1411.84,-557.39 1411.84,-497.39 636.84,-497.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-497.39 636.84,-557.39 1411.84,-557.39 1411.84,-497.39 636.84,-497.39"/>
<text text-anchor="start" x="647.84" y="-517.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">modified_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="1228.38" y="-518.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-437.39 636.84,-497.39 1411.84,-497.39 1411.84,-437.39 636.84,-437.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-437.39 636.84,-497.39 1411.84,-497.39 1411.84,-437.39 636.84,-437.39"/>
<text text-anchor="start" x="647.84" y="-457.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_excisable &#160;&#160;&#160;</text>
<text text-anchor="start" x="1287" y="-458.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="636.84,-377.39 636.84,-437.39 1411.84,-437.39 1411.84,-377.39 636.84,-377.39"/>
<polygon fill="none" stroke="#29235c" points="636.84,-377.39 636.84,-437.39 1411.84,-437.39 1411.84,-377.39 636.84,-377.39"/>
<text text-anchor="start" x="647.45" y="-397.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">counterparty_match_kind &#160;&#160;&#160;</text>
<text text-anchor="start" x="1041.73" y="-398.59" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">counterparty_match_kind</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="635.34,-376.39 635.34,-2178.39 1412.34,-2178.39 1412.34,-376.39 635.34,-376.39"/>
</a>
</g>
</g>
<!-- osv_entry&#45;&gt;osv_group_type -->
<g id="edge15" class="edge">
<title>osv_entry:e&#45;&gt;osv_group_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-1787.39C1580.61,-1787.39 1614.82,-1711.39 1782.59,-1711.39"/>
</g>
<!-- osv_entry&#45;&gt;counterparty_match_kind -->
<g id="edge17" class="edge">
<title>osv_entry:e&#45;&gt;counterparty_match_kind:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-407.39C1548.28,-407.39 1582.14,-407.39 1717.59,-407.39"/>
</g>
<!-- osv_entry&#45;&gt;osv_data_type -->
<g id="edge20" class="edge">
<title>osv_entry:e&#45;&gt;osv_data_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M924.05,-1400.77C1057.78,-1400.77 1090.73,-1383.77 1224.46,-1383.77"/>
</g>
<!-- osv_entry&#45;&gt;app_user -->
<!-- osv_entry&#45;&gt;app_user -->
<g id="edge18" class="edge">
<title>osv_entry:e&#45;&gt;app_user:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M924.05,-500.77C1145.39,-500.77 916.43,-1317.69 1058.09,-1487.77 1117.06,-1558.56 1163.41,-1555.13 1252.28,-1554.79"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1252.46,-1558.29 1262.46,-1554.77 1252.45,-1551.29 1252.46,-1558.29"/>
<text text-anchor="middle" x="1271.35" y="-1564.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="917.82" y="-471.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;chart_of_account -->
<!-- osv_entry&#45;&gt;chart_of_account -->
<g id="edge14" class="edge">
<title>osv_entry:e&#45;&gt;chart_of_account:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M924.05,-1280.77C1111.96,-1280.77 931.74,-1542.67 1058.09,-1681.77 1104.25,-1732.58 1131.54,-1746.44 1196.19,-1747.67"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1196.42,-1751.18 1206.46,-1747.77 1196.49,-1744.18 1196.42,-1751.18"/>
<text text-anchor="middle" x="1215.35" y="-1757.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="917.82" y="-1251.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;legal_entity -->
<!-- osv_entry&#45;&gt;legal_entity -->
<g id="edge8" class="edge">
<title>osv_entry:e&#45;&gt;legal_entity:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M924.05,-1760.77C1002.26,-1760.77 990.23,-1835.9 1058.09,-1874.77 1132.42,-1917.33 1156.46,-1939.04 1237.31,-1940.67"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1237.42,-1944.17 1247.46,-1940.77 1237.49,-1937.17 1237.42,-1944.17"/>
<text text-anchor="middle" x="1256.35" y="-1950.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="917.82" y="-1770.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;legal_entity -->
<!-- osv_entry&#45;&gt;legal_entity -->
<g id="edge16" class="edge">
<title>osv_entry:e&#45;&gt;legal_entity:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M924.05,-1040.77C1111.76,-1040.77 937.54,-1730.88 1058.09,-1874.77 1113.1,-1940.42 1154.95,-1940.84 1237.22,-1940.77"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1237.46,-1944.27 1247.46,-1940.77 1237.45,-1937.27 1237.46,-1944.27"/>
<text text-anchor="middle" x="1256.35" y="-1911.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="917.82" y="-1011.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<title>osv_entry:e&#45;&gt;osv_data_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-1487.39C1535.36,-1487.39 1514.71,-1371.57 1610.67,-1295.39 1685.96,-1235.62 1696.46,-1178.39 1792.59,-1178.39"/>
</g>
<!-- osv_entry&#45;&gt;recognition_job -->
<!-- osv_entry&#45;&gt;recognition_job -->
<g id="edge4" class="edge">
<title>osv_entry:e&#45;&gt;recognition_job:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M924.05,-1880.77C1105.18,-1880.77 919.88,-2567.69 1058.09,-2684.77 1116.49,-2734.23 1673.77,-2707.59 1746.82,-2684.77 1805.98,-2666.28 1803.08,-2607.68 1857.97,-2601.33"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1858.31,-2604.81 1868.1,-2600.77 1857.92,-2597.83 1858.31,-2604.81"/>
<text text-anchor="middle" x="1877" y="-2610.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="917.82" y="-1890.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<!-- osv_entry&#45;&gt;app_user -->
<!-- osv_entry&#45;&gt;app_user -->
<g id="edge14" class="edge">
<title>osv_entry:e&#45;&gt;app_user:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-587.39C1596.26,-587.39 1642.02,-633.62 1820.33,-635.34"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1820.57,-638.84 1830.59,-635.39 1820.61,-631.84 1820.57,-638.84"/>
<text text-anchor="middle" x="1839.48" y="-606.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1419.06" y="-558.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;stored_file -->
<!-- osv_entry&#45;&gt;stored_file -->
<g id="edge6" class="edge">
<title>osv_entry:e&#45;&gt;stored_file:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M924.05,-1820.77C1125.59,-1820.77 930.76,-2561.54 1058.09,-2717.77 1114.64,-2787.15 1158.17,-2789.67 1244.3,-2789.76"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1244.45,-2793.26 1254.46,-2789.77 1244.46,-2786.26 1244.45,-2793.26"/>
<text text-anchor="middle" x="1263.35" y="-2799.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="917.82" y="-1830.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;osv_group_schema -->
<!-- osv_entry&#45;&gt;osv_group_schema -->
<g id="edge12" class="edge">
<title>osv_entry:e&#45;&gt;osv_group_schema:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M924.05,-1640.77C1117.71,-1640.77 968.77,-2465.97 1150.39,-2494.98"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1150.21,-2498.48 1160.46,-2495.77 1150.76,-2491.5 1150.21,-2498.48"/>
<text text-anchor="middle" x="1169.35" y="-2505.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="917.82" y="-1650.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;osv_entry -->
<!-- osv_entry&#45;&gt;osv_entry -->
<!-- osv_entry&#45;&gt;chart_of_account -->
<!-- osv_entry&#45;&gt;chart_of_account -->
<g id="edge10" class="edge">
<title>osv_entry:e&#45;&gt;chart_of_account:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-1367.39C1635.39,-1367.39 1451.88,-1671.45 1610.67,-1827.39 1664.3,-1880.05 1693.22,-1893.23 1764.28,-1894.31"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1764.56,-1897.81 1774.59,-1894.39 1764.62,-1890.81 1764.56,-1897.81"/>
<text text-anchor="middle" x="1783.48" y="-1903.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1419.06" y="-1376.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;document -->
<!-- osv_entry&#45;&gt;document -->
<g id="edge4" class="edge">
<title>osv_entry:e&#45;&gt;document:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-1967.39C1553.49,-1967.39 1494.28,-2135.43 1610.67,-2214.39 1690.88,-2268.79 1723.96,-2279.67 1816.53,-2280.35"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1816.58,-2283.85 1826.59,-2280.39 1816.6,-2276.85 1816.58,-2283.85"/>
<text text-anchor="middle" x="1835.48" y="-2289.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1419.06" y="-1976.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;legal_entity -->
<!-- osv_entry&#45;&gt;legal_entity -->
<g id="edge6" class="edge">
<title>osv_entry:e&#45;&gt;legal_entity:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-1907.39C1514.32,-1907.39 1517.9,-1980.27 1610.67,-2021.39 1694.99,-2058.75 1718.25,-2085.4 1805.5,-2087.28"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1805.55,-2090.78 1815.59,-2087.39 1805.63,-2083.78 1805.55,-2090.78"/>
<text text-anchor="middle" x="1824.48" y="-2096.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1419.06" y="-1916.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;legal_entity -->
<!-- osv_entry&#45;&gt;legal_entity -->
<g id="edge12" class="edge">
<title>osv_entry:e&#45;&gt;legal_entity:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-1127.39C1819.78,-1127.39 1336.73,-1720.46 1610.67,-2021.39 1672.76,-2089.59 1716.64,-2087.63 1805.41,-2087.4"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1805.59,-2090.9 1815.59,-2087.39 1805.58,-2083.9 1805.59,-2090.9"/>
<text text-anchor="middle" x="1824.48" y="-2058.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1419.06" y="-1098.59" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;recognition_job -->
<!-- osv_entry&#45;&gt;recognition_job -->
<g id="edge2" class="edge">
<title>osv_entry:e&#45;&gt;recognition_job:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1412.84,-2027.39C1603.24,-2027.39 1467.9,-2281.41 1610.67,-2407.39 1671.32,-2460.9 1701.71,-2472.47 1778.48,-2473.33"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1778.57,-2476.83 1788.59,-2473.39 1778.61,-2469.83 1778.57,-2476.83"/>
<text text-anchor="middle" x="1797.48" y="-2482.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1419.06" y="-2036.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- osv_entry&#45;&gt;osv_entry -->
<!-- osv_entry&#45;&gt;osv_entry -->
<g id="edge8" class="edge">
<title>osv_entry:e&#45;&gt;osv_entry:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M923.05,-1700.77C1101.05,-2103.69 1101.05,-2399.54 689.55,-2399.54 281.26,-2399.54 278.07,-2344.56 451.91,-1950.15"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="455.21,-1951.33 456.05,-1940.77 448.81,-1948.5 455.21,-1951.33"/>
<text text-anchor="middle" x="447.15" y="-1950.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="916.82" y="-1710.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1411.84,-1847.39C1648.34,-2278.59 1648.34,-2571.01 1024.34,-2571.01 404.6,-2571.01 400.37,-2519.31 632.02,-2096.18"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="635.1,-2097.84 636.84,-2087.39 628.96,-2094.47 635.1,-2097.84"/>
<text text-anchor="middle" x="627.94" y="-2096.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1418.06" y="-1856.99" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 KiB

After

Width:  |  Height:  |  Size: 338 KiB

View File

@ -4,39 +4,56 @@
<!-- Generated by graphviz version 2.47.0 (20210316.0004)
-->
<!-- Title: dbml Pages: 1 -->
<svg width="2937pt" height="3013pt"
viewBox="0.00 0.00 2937.36 3013.49" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3009.49)">
<svg width="2937pt" height="3014pt"
viewBox="0.00 0.00 2937.36 3013.71" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3009.71)">
<title>dbml</title>
<!-- statement_type -->
<g id="statement_type" class="node">
<title>statement_type</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2668.43" cy="-2284.17" rx="260.84" ry="130.22"/>
<polygon fill="#29235c" stroke="transparent" points="2486.43,-2314.17 2486.43,-2374.17 2851.43,-2374.17 2851.43,-2314.17 2486.43,-2314.17"/>
<polygon fill="none" stroke="#29235c" points="2486.43,-2314.17 2486.43,-2374.17 2851.43,-2374.17 2851.43,-2314.17 2486.43,-2314.17"/>
<text text-anchor="start" x="2497.31" y="-2335.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;statement_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2486.43,-2254.17 2486.43,-2314.17 2851.43,-2314.17 2851.43,-2254.17 2486.43,-2254.17"/>
<polygon fill="none" stroke="#29235c" points="2486.43,-2254.17 2486.43,-2314.17 2851.43,-2314.17 2851.43,-2254.17 2486.43,-2254.17"/>
<text text-anchor="start" x="2577.34" y="-2275.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;balance &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2486.43,-2194.17 2486.43,-2254.17 2851.43,-2254.17 2851.43,-2194.17 2486.43,-2194.17"/>
<polygon fill="none" stroke="#29235c" points="2486.43,-2194.17 2486.43,-2254.17 2851.43,-2254.17 2851.43,-2194.17 2486.43,-2194.17"/>
<text text-anchor="start" x="2581.8" y="-2215.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;income &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2484.93,-2193.17 2484.93,-2375.17 2851.93,-2375.17 2851.93,-2193.17 2484.93,-2193.17"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2668.43" cy="-2284.38" rx="260.84" ry="130.22"/>
<polygon fill="#29235c" stroke="transparent" points="2486.43,-2314.38 2486.43,-2374.38 2851.43,-2374.38 2851.43,-2314.38 2486.43,-2314.38"/>
<polygon fill="none" stroke="#29235c" points="2486.43,-2314.38 2486.43,-2374.38 2851.43,-2374.38 2851.43,-2314.38 2486.43,-2314.38"/>
<text text-anchor="start" x="2497.31" y="-2335.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;statement_type &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2486.43,-2254.38 2486.43,-2314.38 2851.43,-2314.38 2851.43,-2254.38 2486.43,-2254.38"/>
<polygon fill="none" stroke="#29235c" points="2486.43,-2254.38 2486.43,-2314.38 2851.43,-2314.38 2851.43,-2254.38 2486.43,-2254.38"/>
<text text-anchor="start" x="2577.34" y="-2275.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;balance &#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2486.43,-2194.38 2486.43,-2254.38 2851.43,-2254.38 2851.43,-2194.38 2486.43,-2194.38"/>
<polygon fill="none" stroke="#29235c" points="2486.43,-2194.38 2486.43,-2254.38 2851.43,-2254.38 2851.43,-2194.38 2486.43,-2194.38"/>
<text text-anchor="start" x="2581.8" y="-2215.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8"> &#160;&#160;&#160;income &#160;&#160;&#160;</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2484.93,-2193.38 2484.93,-2375.38 2851.93,-2375.38 2851.93,-2193.38 2484.93,-2193.38"/>
</g>
<!-- app_user -->
<g id="app_user" class="node">
<title>app_user</title>
<g id="a_app_user"><a xlink:title="app_user&#10;STUB — полное определение в part02_users_access">
<ellipse fill="none" stroke="black" stroke-width="0" cx="2668.43" cy="-2048.17" rx="200.22" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="2529.43,-2048.17 2529.43,-2108.17 2808.43,-2108.17 2808.43,-2048.17 2529.43,-2048.17"/>
<polygon fill="none" stroke="#29235c" points="2529.43,-2048.17 2529.43,-2108.17 2808.43,-2108.17 2808.43,-2048.17 2529.43,-2048.17"/>
<text text-anchor="start" x="2539.99" y="-2069.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;app_user &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2529.43,-1988.17 2529.43,-2048.17 2808.43,-2048.17 2808.43,-1988.17 2529.43,-1988.17"/>
<polygon fill="none" stroke="#29235c" points="2529.43,-1988.17 2529.43,-2048.17 2808.43,-2048.17 2808.43,-1988.17 2529.43,-1988.17"/>
<text text-anchor="start" x="2540.43" y="-2009.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="2565.32" y="-2009.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2736.97" y="-2009.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2527.93,-1987.17 2527.93,-2109.17 2808.93,-2109.17 2808.93,-1987.17 2527.93,-1987.17"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2668.43" cy="-2048.38" rx="200.22" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="2529.43,-2048.38 2529.43,-2108.38 2808.43,-2108.38 2808.43,-2048.38 2529.43,-2048.38"/>
<polygon fill="none" stroke="#29235c" points="2529.43,-2048.38 2529.43,-2108.38 2808.43,-2108.38 2808.43,-2048.38 2529.43,-2048.38"/>
<text text-anchor="start" x="2539.99" y="-2069.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;app_user &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2529.43,-1988.38 2529.43,-2048.38 2808.43,-2048.38 2808.43,-1988.38 2529.43,-1988.38"/>
<polygon fill="none" stroke="#29235c" points="2529.43,-1988.38 2529.43,-2048.38 2808.43,-2048.38 2808.43,-1988.38 2529.43,-1988.38"/>
<text text-anchor="start" x="2540.43" y="-2009.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="2565.32" y="-2009.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2736.97" y="-2009.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2527.93,-1987.38 2527.93,-2109.38 2808.93,-2109.38 2808.93,-1987.38 2527.93,-1987.38"/>
</a>
</g>
</g>
<!-- document -->
<g id="document" class="node">
<title>document</title>
<g id="a_document"><a xlink:title="document&#10;STUB — полное определение в part04_files_jobs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="2668.43" cy="-2713.38" rx="205.12" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="2525.43,-2713.38 2525.43,-2773.38 2811.43,-2773.38 2811.43,-2713.38 2525.43,-2713.38"/>
<polygon fill="none" stroke="#29235c" points="2525.43,-2713.38 2525.43,-2773.38 2811.43,-2773.38 2811.43,-2713.38 2525.43,-2713.38"/>
<text text-anchor="start" x="2535.94" y="-2734.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;document &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2525.43,-2653.38 2525.43,-2713.38 2811.43,-2713.38 2811.43,-2653.38 2525.43,-2653.38"/>
<polygon fill="none" stroke="#29235c" points="2525.43,-2653.38 2525.43,-2713.38 2811.43,-2713.38 2811.43,-2653.38 2525.43,-2653.38"/>
<text text-anchor="start" x="2536.43" y="-2674.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="2561.32" y="-2674.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2739.97" y="-2674.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2524.43,-2652.38 2524.43,-2774.38 2812.43,-2774.38 2812.43,-2652.38 2524.43,-2652.38"/>
</a>
</g>
</g>
@ -44,33 +61,16 @@
<g id="recognition_job" class="node">
<title>recognition_job</title>
<g id="a_recognition_job"><a xlink:title="recognition_job&#10;STUB — полное определение в part04_files_jobs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="2668.43" cy="-2520.17" rx="259.52" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="2487.43,-2520.17 2487.43,-2580.17 2850.43,-2580.17 2850.43,-2520.17 2487.43,-2520.17"/>
<polygon fill="none" stroke="#29235c" points="2487.43,-2520.17 2487.43,-2580.17 2850.43,-2580.17 2850.43,-2520.17 2487.43,-2520.17"/>
<text text-anchor="start" x="2498.21" y="-2541.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;recognition_job &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2487.43,-2460.17 2487.43,-2520.17 2850.43,-2520.17 2850.43,-2460.17 2487.43,-2460.17"/>
<polygon fill="none" stroke="#29235c" points="2487.43,-2460.17 2487.43,-2520.17 2850.43,-2520.17 2850.43,-2460.17 2487.43,-2460.17"/>
<text text-anchor="start" x="2498.43" y="-2481.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="2523.32" y="-2481.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2778.97" y="-2481.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2485.93,-2459.17 2485.93,-2581.17 2850.93,-2581.17 2850.93,-2459.17 2485.93,-2459.17"/>
</a>
</g>
</g>
<!-- stored_file -->
<g id="stored_file" class="node">
<title>stored_file</title>
<g id="a_stored_file"><a xlink:title="stored_file&#10;STUB — полное определение в part04_files_jobs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="2668.43" cy="-2713.17" rx="210.94" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="2521.43,-2713.17 2521.43,-2773.17 2815.43,-2773.17 2815.43,-2713.17 2521.43,-2713.17"/>
<polygon fill="none" stroke="#29235c" points="2521.43,-2713.17 2521.43,-2773.17 2815.43,-2773.17 2815.43,-2713.17 2521.43,-2713.17"/>
<text text-anchor="start" x="2532.39" y="-2734.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;stored_file &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2521.43,-2653.17 2521.43,-2713.17 2815.43,-2713.17 2815.43,-2653.17 2521.43,-2653.17"/>
<polygon fill="none" stroke="#29235c" points="2521.43,-2653.17 2521.43,-2713.17 2815.43,-2713.17 2815.43,-2653.17 2521.43,-2653.17"/>
<text text-anchor="start" x="2532.43" y="-2674.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="2557.32" y="-2674.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2743.97" y="-2674.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2520.43,-2652.17 2520.43,-2774.17 2816.43,-2774.17 2816.43,-2652.17 2520.43,-2652.17"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2668.43" cy="-2520.38" rx="259.52" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="2487.43,-2520.38 2487.43,-2580.38 2850.43,-2580.38 2850.43,-2520.38 2487.43,-2520.38"/>
<polygon fill="none" stroke="#29235c" points="2487.43,-2520.38 2487.43,-2580.38 2850.43,-2580.38 2850.43,-2520.38 2487.43,-2520.38"/>
<text text-anchor="start" x="2498.21" y="-2541.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;recognition_job &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="2487.43,-2460.38 2487.43,-2520.38 2850.43,-2520.38 2850.43,-2460.38 2487.43,-2460.38"/>
<polygon fill="none" stroke="#29235c" points="2487.43,-2460.38 2487.43,-2520.38 2850.43,-2520.38 2850.43,-2460.38 2487.43,-2460.38"/>
<text text-anchor="start" x="2498.43" y="-2481.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="2523.32" y="-2481.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2778.97" y="-2481.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="2485.93,-2459.38 2485.93,-2581.38 2850.93,-2581.38 2850.93,-2459.38 2485.93,-2459.38"/>
</a>
</g>
</g>
@ -78,232 +78,232 @@
<g id="financial_statement_meta" class="node">
<title>financial_statement_meta</title>
<g id="a_financial_statement_meta"><a xlink:title="financial_statement_meta&#10;Шапка распознанной формы ББ/ОФР. Логические проверки (ТЗ 6.3 Таблица 1) не хранятся — считаются на лету по value">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1985.43" cy="-1560.17" rx="386.16" ry="1445.15"/>
<polygon fill="#1d71b8" stroke="transparent" points="1714.43,-2520.17 1714.43,-2580.17 2256.43,-2580.17 2256.43,-2520.17 1714.43,-2520.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2520.17 1714.43,-2580.17 2256.43,-2580.17 2256.43,-2520.17 1714.43,-2520.17"/>
<text text-anchor="start" x="1740.91" y="-2541.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;financial_statement_meta &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2460.17 1714.43,-2520.17 2256.43,-2520.17 2256.43,-2460.17 1714.43,-2460.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2460.17 1714.43,-2520.17 2256.43,-2520.17 2256.43,-2460.17 1714.43,-2460.17"/>
<text text-anchor="start" x="1725.43" y="-2481.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1750.32" y="-2481.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2184.96" y="-2481.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2400.17 1714.43,-2460.17 2256.43,-2460.17 2256.43,-2400.17 1714.43,-2400.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2400.17 1714.43,-2460.17 2256.43,-2460.17 2256.43,-2400.17 1714.43,-2400.17"/>
<text text-anchor="start" x="1725.43" y="-2420.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">stored_file_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="2145.87" y="-2421.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="2206.34" y="-2421.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="2215.23" y="-2421.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2340.17 1714.43,-2400.17 2256.43,-2400.17 2256.43,-2340.17 1714.43,-2340.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2340.17 1714.43,-2400.17 2256.43,-2400.17 2256.43,-2340.17 1714.43,-2340.17"/>
<text text-anchor="start" x="1725.43" y="-2360.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">recognition_job_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="2145.87" y="-2361.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="2206.34" y="-2361.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="2215.23" y="-2361.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2280.17 1714.43,-2340.17 2256.43,-2340.17 2256.43,-2280.17 1714.43,-2280.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2280.17 1714.43,-2340.17 2256.43,-2340.17 2256.43,-2280.17 1714.43,-2280.17"/>
<text text-anchor="start" x="1725.43" y="-2300.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">statement_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1987.59" y="-2301.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">statement_type</text>
<text text-anchor="start" x="2206.34" y="-2301.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="2215.23" y="-2301.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2220.17 1714.43,-2280.17 2256.43,-2280.17 2256.43,-2220.17 1714.43,-2220.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2220.17 1714.43,-2280.17 2256.43,-2280.17 2256.43,-2220.17 1714.43,-2220.17"/>
<text text-anchor="start" x="1725.43" y="-2240.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-2241.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2160.17 1714.43,-2220.17 2256.43,-2220.17 2256.43,-2160.17 1714.43,-2160.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2160.17 1714.43,-2220.17 2256.43,-2220.17 2256.43,-2160.17 1714.43,-2160.17"/>
<text text-anchor="start" x="1725.43" y="-2180.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-2181.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2100.17 1714.43,-2160.17 2256.43,-2160.17 2256.43,-2100.17 1714.43,-2100.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2100.17 1714.43,-2160.17 2256.43,-2160.17 2256.43,-2100.17 1714.43,-2100.17"/>
<text text-anchor="start" x="1725.43" y="-2120.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn_confidence &#160;&#160;&#160;</text>
<text text-anchor="start" x="2065.88" y="-2121.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(5,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2040.17 1714.43,-2100.17 2256.43,-2100.17 2256.43,-2040.17 1714.43,-2040.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2040.17 1714.43,-2100.17 2256.43,-2100.17 2256.43,-2040.17 1714.43,-2040.17"/>
<text text-anchor="start" x="1725.43" y="-2060.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn_verified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-2061.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1980.17 1714.43,-2040.17 2256.43,-2040.17 2256.43,-1980.17 1714.43,-1980.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1980.17 1714.43,-2040.17 2256.43,-2040.17 2256.43,-1980.17 1714.43,-1980.17"/>
<text text-anchor="start" x="1725.43" y="-2000.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-2001.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1920.17 1714.43,-1980.17 2256.43,-1980.17 2256.43,-1920.17 1714.43,-1920.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1920.17 1714.43,-1980.17 2256.43,-1980.17 2256.43,-1920.17 1714.43,-1920.17"/>
<text text-anchor="start" x="1725.43" y="-1940.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">organization_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1941.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1860.17 1714.43,-1920.17 2256.43,-1920.17 2256.43,-1860.17 1714.43,-1860.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1860.17 1714.43,-1920.17 2256.43,-1920.17 2256.43,-1860.17 1714.43,-1860.17"/>
<text text-anchor="start" x="1725.43" y="-1880.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date &#160;&#160;&#160;</text>
<text text-anchor="start" x="2183.17" y="-1881.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1800.17 1714.43,-1860.17 2256.43,-1860.17 2256.43,-1800.17 1714.43,-1800.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1800.17 1714.43,-1860.17 2256.43,-1860.17 2256.43,-1800.17 1714.43,-1800.17"/>
<text text-anchor="start" x="1725.26" y="-1820.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="2139.09" y="-1821.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1740.17 1714.43,-1800.17 2256.43,-1800.17 2256.43,-1740.17 1714.43,-1740.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1740.17 1714.43,-1800.17 2256.43,-1800.17 2256.43,-1740.17 1714.43,-1740.17"/>
<text text-anchor="start" x="1725.43" y="-1760.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date_verified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-1761.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1680.17 1714.43,-1740.17 2256.43,-1740.17 2256.43,-1680.17 1714.43,-1680.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1680.17 1714.43,-1740.17 2256.43,-1740.17 2256.43,-1680.17 1714.43,-1680.17"/>
<text text-anchor="start" x="1725.43" y="-1700.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-1701.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1620.17 1714.43,-1680.17 2256.43,-1680.17 2256.43,-1620.17 1714.43,-1620.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1620.17 1714.43,-1680.17 2256.43,-1680.17 2256.43,-1620.17 1714.43,-1620.17"/>
<text text-anchor="start" x="1725.43" y="-1640.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">units &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1641.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1560.17 1714.43,-1620.17 2256.43,-1620.17 2256.43,-1560.17 1714.43,-1560.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1560.17 1714.43,-1620.17 2256.43,-1620.17 2256.43,-1560.17 1714.43,-1560.17"/>
<text text-anchor="start" x="1725.43" y="-1580.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">units_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1581.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1500.17 1714.43,-1560.17 2256.43,-1560.17 2256.43,-1500.17 1714.43,-1500.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1500.17 1714.43,-1560.17 2256.43,-1560.17 2256.43,-1500.17 1714.43,-1500.17"/>
<text text-anchor="start" x="1725.43" y="-1520.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">units_verified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-1521.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1440.17 1714.43,-1500.17 2256.43,-1500.17 2256.43,-1440.17 1714.43,-1440.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1440.17 1714.43,-1500.17 2256.43,-1500.17 2256.43,-1440.17 1714.43,-1440.17"/>
<text text-anchor="start" x="1725.43" y="-1460.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">units_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-1461.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1380.17 1714.43,-1440.17 2256.43,-1440.17 2256.43,-1380.17 1714.43,-1380.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1380.17 1714.43,-1440.17 2256.43,-1440.17 2256.43,-1380.17 1714.43,-1380.17"/>
<text text-anchor="start" x="1725.43" y="-1400.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">currency &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1401.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1320.17 1714.43,-1380.17 2256.43,-1380.17 2256.43,-1320.17 1714.43,-1320.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1320.17 1714.43,-1380.17 2256.43,-1380.17 2256.43,-1320.17 1714.43,-1320.17"/>
<text text-anchor="start" x="1725.43" y="-1340.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okpo &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1341.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1260.17 1714.43,-1320.17 2256.43,-1320.17 2256.43,-1260.17 1714.43,-1260.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1260.17 1714.43,-1320.17 2256.43,-1320.17 2256.43,-1260.17 1714.43,-1260.17"/>
<text text-anchor="start" x="1725.43" y="-1280.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okopf &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1281.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1200.17 1714.43,-1260.17 2256.43,-1260.17 2256.43,-1200.17 1714.43,-1200.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1200.17 1714.43,-1260.17 2256.43,-1260.17 2256.43,-1200.17 1714.43,-1200.17"/>
<text text-anchor="start" x="1725.43" y="-1220.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okfs &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1221.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1140.17 1714.43,-1200.17 2256.43,-1200.17 2256.43,-1140.17 1714.43,-1140.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1140.17 1714.43,-1200.17 2256.43,-1200.17 2256.43,-1140.17 1714.43,-1140.17"/>
<text text-anchor="start" x="1725.43" y="-1160.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okud &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1161.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1080.17 1714.43,-1140.17 2256.43,-1140.17 2256.43,-1080.17 1714.43,-1080.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1080.17 1714.43,-1140.17 2256.43,-1140.17 2256.43,-1080.17 1714.43,-1080.17"/>
<text text-anchor="start" x="1725.43" y="-1100.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okei &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1101.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1020.17 1714.43,-1080.17 2256.43,-1080.17 2256.43,-1020.17 1714.43,-1020.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1020.17 1714.43,-1080.17 2256.43,-1080.17 2256.43,-1020.17 1714.43,-1020.17"/>
<text text-anchor="start" x="1725.43" y="-1040.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">legal_form &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1041.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-960.17 1714.43,-1020.17 2256.43,-1020.17 2256.43,-960.17 1714.43,-960.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-960.17 1714.43,-1020.17 2256.43,-1020.17 2256.43,-960.17 1714.43,-960.17"/>
<text text-anchor="start" x="1725.43" y="-980.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">ownership_form &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-981.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-900.17 1714.43,-960.17 2256.43,-960.17 2256.43,-900.17 1714.43,-900.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-900.17 1714.43,-960.17 2256.43,-960.17 2256.43,-900.17 1714.43,-900.17"/>
<text text-anchor="start" x="1725.43" y="-920.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">address &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-921.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-840.17 1714.43,-900.17 2256.43,-900.17 2256.43,-840.17 1714.43,-840.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-840.17 1714.43,-900.17 2256.43,-900.17 2256.43,-840.17 1714.43,-840.17"/>
<text text-anchor="start" x="1725.43" y="-860.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">subject_to_audit &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-861.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-780.17 1714.43,-840.17 2256.43,-840.17 2256.43,-780.17 1714.43,-780.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-780.17 1714.43,-840.17 2256.43,-840.17 2256.43,-780.17 1714.43,-780.17"/>
<text text-anchor="start" x="1725.43" y="-800.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">reviewed_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="2184.96" y="-801.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-720.17 1714.43,-780.17 2256.43,-780.17 2256.43,-720.17 1714.43,-720.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-720.17 1714.43,-780.17 2256.43,-780.17 2256.43,-720.17 1714.43,-720.17"/>
<text text-anchor="start" x="1725.43" y="-740.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">reviewed_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="2072.98" y="-741.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-660.17 1714.43,-720.17 2256.43,-720.17 2256.43,-660.17 1714.43,-660.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-660.17 1714.43,-720.17 2256.43,-720.17 2256.43,-660.17 1714.43,-660.17"/>
<text text-anchor="start" x="1725.43" y="-680.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">checks_accepted_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="2184.96" y="-681.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-600.17 1714.43,-660.17 2256.43,-660.17 2256.43,-600.17 1714.43,-600.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-600.17 1714.43,-660.17 2256.43,-660.17 2256.43,-600.17 1714.43,-600.17"/>
<text text-anchor="start" x="1725.43" y="-620.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">checks_accepted_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="2072.98" y="-621.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-540.17 1714.43,-600.17 2256.43,-600.17 2256.43,-540.17 1714.43,-540.17"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-540.17 1714.43,-600.17 2256.43,-600.17 2256.43,-540.17 1714.43,-540.17"/>
<text text-anchor="start" x="1725.43" y="-560.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">checks_accepted_comment &#160;&#160;&#160;</text>
<text text-anchor="start" x="2193.86" y="-561.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">text</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1713.43,-539.17 1713.43,-2581.17 2257.43,-2581.17 2257.43,-539.17 1713.43,-539.17"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1985.43" cy="-1560.38" rx="386.16" ry="1445.15"/>
<polygon fill="#1d71b8" stroke="transparent" points="1714.43,-2520.38 1714.43,-2580.38 2256.43,-2580.38 2256.43,-2520.38 1714.43,-2520.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2520.38 1714.43,-2580.38 2256.43,-2580.38 2256.43,-2520.38 1714.43,-2520.38"/>
<text text-anchor="start" x="1740.91" y="-2541.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;financial_statement_meta &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2460.38 1714.43,-2520.38 2256.43,-2520.38 2256.43,-2460.38 1714.43,-2460.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2460.38 1714.43,-2520.38 2256.43,-2520.38 2256.43,-2460.38 1714.43,-2460.38"/>
<text text-anchor="start" x="1725.43" y="-2481.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1750.32" y="-2481.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="2184.96" y="-2481.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2400.38 1714.43,-2460.38 2256.43,-2460.38 2256.43,-2400.38 1714.43,-2400.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2400.38 1714.43,-2460.38 2256.43,-2460.38 2256.43,-2400.38 1714.43,-2400.38"/>
<text text-anchor="start" x="1725.43" y="-2420.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">document_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="2145.87" y="-2421.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="2206.34" y="-2421.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="2215.23" y="-2421.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2340.38 1714.43,-2400.38 2256.43,-2400.38 2256.43,-2340.38 1714.43,-2340.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2340.38 1714.43,-2400.38 2256.43,-2400.38 2256.43,-2340.38 1714.43,-2340.38"/>
<text text-anchor="start" x="1725.43" y="-2360.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">recognition_job_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="2145.87" y="-2361.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="2206.34" y="-2361.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="2215.23" y="-2361.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2280.38 1714.43,-2340.38 2256.43,-2340.38 2256.43,-2280.38 1714.43,-2280.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2280.38 1714.43,-2340.38 2256.43,-2340.38 2256.43,-2280.38 1714.43,-2280.38"/>
<text text-anchor="start" x="1725.43" y="-2300.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">statement_type &#160;&#160;&#160;</text>
<text text-anchor="start" x="1987.59" y="-2301.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">statement_type</text>
<text text-anchor="start" x="2206.34" y="-2301.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="2215.23" y="-2301.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2220.38 1714.43,-2280.38 2256.43,-2280.38 2256.43,-2220.38 1714.43,-2220.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2220.38 1714.43,-2280.38 2256.43,-2280.38 2256.43,-2220.38 1714.43,-2220.38"/>
<text text-anchor="start" x="1725.43" y="-2240.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-2241.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2160.38 1714.43,-2220.38 2256.43,-2220.38 2256.43,-2160.38 1714.43,-2160.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2160.38 1714.43,-2220.38 2256.43,-2220.38 2256.43,-2160.38 1714.43,-2160.38"/>
<text text-anchor="start" x="1725.43" y="-2180.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-2181.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2100.38 1714.43,-2160.38 2256.43,-2160.38 2256.43,-2100.38 1714.43,-2100.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2100.38 1714.43,-2160.38 2256.43,-2160.38 2256.43,-2100.38 1714.43,-2100.38"/>
<text text-anchor="start" x="1725.43" y="-2120.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn_confidence &#160;&#160;&#160;</text>
<text text-anchor="start" x="2065.88" y="-2121.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(5,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-2040.38 1714.43,-2100.38 2256.43,-2100.38 2256.43,-2040.38 1714.43,-2040.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-2040.38 1714.43,-2100.38 2256.43,-2100.38 2256.43,-2040.38 1714.43,-2040.38"/>
<text text-anchor="start" x="1725.43" y="-2060.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn_verified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-2061.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1980.38 1714.43,-2040.38 2256.43,-2040.38 2256.43,-1980.38 1714.43,-1980.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1980.38 1714.43,-2040.38 2256.43,-2040.38 2256.43,-1980.38 1714.43,-1980.38"/>
<text text-anchor="start" x="1725.43" y="-2000.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">inn_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-2001.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1920.38 1714.43,-1980.38 2256.43,-1980.38 2256.43,-1920.38 1714.43,-1920.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1920.38 1714.43,-1980.38 2256.43,-1980.38 2256.43,-1920.38 1714.43,-1920.38"/>
<text text-anchor="start" x="1725.43" y="-1940.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">organization_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1941.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1860.38 1714.43,-1920.38 2256.43,-1920.38 2256.43,-1860.38 1714.43,-1860.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1860.38 1714.43,-1920.38 2256.43,-1920.38 2256.43,-1860.38 1714.43,-1860.38"/>
<text text-anchor="start" x="1725.43" y="-1880.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date &#160;&#160;&#160;</text>
<text text-anchor="start" x="2183.17" y="-1881.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1800.38 1714.43,-1860.38 2256.43,-1860.38 2256.43,-1800.38 1714.43,-1800.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1800.38 1714.43,-1860.38 2256.43,-1860.38 2256.43,-1800.38 1714.43,-1800.38"/>
<text text-anchor="start" x="1725.26" y="-1820.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="2139.09" y="-1821.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1740.38 1714.43,-1800.38 2256.43,-1800.38 2256.43,-1740.38 1714.43,-1740.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1740.38 1714.43,-1800.38 2256.43,-1800.38 2256.43,-1740.38 1714.43,-1740.38"/>
<text text-anchor="start" x="1725.43" y="-1760.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date_verified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-1761.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1680.38 1714.43,-1740.38 2256.43,-1740.38 2256.43,-1680.38 1714.43,-1680.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1680.38 1714.43,-1740.38 2256.43,-1740.38 2256.43,-1680.38 1714.43,-1680.38"/>
<text text-anchor="start" x="1725.43" y="-1700.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_date_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-1701.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1620.38 1714.43,-1680.38 2256.43,-1680.38 2256.43,-1620.38 1714.43,-1620.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1620.38 1714.43,-1680.38 2256.43,-1680.38 2256.43,-1620.38 1714.43,-1620.38"/>
<text text-anchor="start" x="1725.43" y="-1640.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">units &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1641.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1560.38 1714.43,-1620.38 2256.43,-1620.38 2256.43,-1560.38 1714.43,-1560.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1560.38 1714.43,-1620.38 2256.43,-1620.38 2256.43,-1560.38 1714.43,-1560.38"/>
<text text-anchor="start" x="1725.43" y="-1580.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">units_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1581.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1500.38 1714.43,-1560.38 2256.43,-1560.38 2256.43,-1500.38 1714.43,-1500.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1500.38 1714.43,-1560.38 2256.43,-1560.38 2256.43,-1500.38 1714.43,-1500.38"/>
<text text-anchor="start" x="1725.43" y="-1520.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">units_verified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-1521.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1440.38 1714.43,-1500.38 2256.43,-1500.38 2256.43,-1440.38 1714.43,-1440.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1440.38 1714.43,-1500.38 2256.43,-1500.38 2256.43,-1440.38 1714.43,-1440.38"/>
<text text-anchor="start" x="1725.43" y="-1460.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">units_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-1461.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1380.38 1714.43,-1440.38 2256.43,-1440.38 2256.43,-1380.38 1714.43,-1380.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1380.38 1714.43,-1440.38 2256.43,-1440.38 2256.43,-1380.38 1714.43,-1380.38"/>
<text text-anchor="start" x="1725.43" y="-1400.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">currency &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1401.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1320.38 1714.43,-1380.38 2256.43,-1380.38 2256.43,-1320.38 1714.43,-1320.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1320.38 1714.43,-1380.38 2256.43,-1380.38 2256.43,-1320.38 1714.43,-1320.38"/>
<text text-anchor="start" x="1725.43" y="-1340.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okpo &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1341.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1260.38 1714.43,-1320.38 2256.43,-1320.38 2256.43,-1260.38 1714.43,-1260.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1260.38 1714.43,-1320.38 2256.43,-1320.38 2256.43,-1260.38 1714.43,-1260.38"/>
<text text-anchor="start" x="1725.43" y="-1280.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okopf &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1281.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1200.38 1714.43,-1260.38 2256.43,-1260.38 2256.43,-1200.38 1714.43,-1200.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1200.38 1714.43,-1260.38 2256.43,-1260.38 2256.43,-1200.38 1714.43,-1200.38"/>
<text text-anchor="start" x="1725.43" y="-1220.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okfs &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1221.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1140.38 1714.43,-1200.38 2256.43,-1200.38 2256.43,-1140.38 1714.43,-1140.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1140.38 1714.43,-1200.38 2256.43,-1200.38 2256.43,-1140.38 1714.43,-1140.38"/>
<text text-anchor="start" x="1725.43" y="-1160.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okud &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1161.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1080.38 1714.43,-1140.38 2256.43,-1140.38 2256.43,-1080.38 1714.43,-1080.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1080.38 1714.43,-1140.38 2256.43,-1140.38 2256.43,-1080.38 1714.43,-1080.38"/>
<text text-anchor="start" x="1725.43" y="-1100.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">okei &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1101.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-1020.38 1714.43,-1080.38 2256.43,-1080.38 2256.43,-1020.38 1714.43,-1020.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-1020.38 1714.43,-1080.38 2256.43,-1080.38 2256.43,-1020.38 1714.43,-1020.38"/>
<text text-anchor="start" x="1725.43" y="-1040.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">legal_form &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-1041.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-960.38 1714.43,-1020.38 2256.43,-1020.38 2256.43,-960.38 1714.43,-960.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-960.38 1714.43,-1020.38 2256.43,-1020.38 2256.43,-960.38 1714.43,-960.38"/>
<text text-anchor="start" x="1725.43" y="-980.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">ownership_form &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-981.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-900.38 1714.43,-960.38 2256.43,-960.38 2256.43,-900.38 1714.43,-900.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-900.38 1714.43,-960.38 2256.43,-960.38 2256.43,-900.38 1714.43,-900.38"/>
<text text-anchor="start" x="1725.43" y="-920.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">address &#160;&#160;&#160;</text>
<text text-anchor="start" x="2138.76" y="-921.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-840.38 1714.43,-900.38 2256.43,-900.38 2256.43,-840.38 1714.43,-840.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-840.38 1714.43,-900.38 2256.43,-900.38 2256.43,-840.38 1714.43,-840.38"/>
<text text-anchor="start" x="1725.43" y="-860.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">subject_to_audit &#160;&#160;&#160;</text>
<text text-anchor="start" x="2131.6" y="-861.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-780.38 1714.43,-840.38 2256.43,-840.38 2256.43,-780.38 1714.43,-780.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-780.38 1714.43,-840.38 2256.43,-840.38 2256.43,-780.38 1714.43,-780.38"/>
<text text-anchor="start" x="1725.43" y="-800.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">reviewed_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="2184.96" y="-801.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-720.38 1714.43,-780.38 2256.43,-780.38 2256.43,-720.38 1714.43,-720.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-720.38 1714.43,-780.38 2256.43,-780.38 2256.43,-720.38 1714.43,-720.38"/>
<text text-anchor="start" x="1725.43" y="-740.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">reviewed_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="2072.98" y="-741.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-660.38 1714.43,-720.38 2256.43,-720.38 2256.43,-660.38 1714.43,-660.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-660.38 1714.43,-720.38 2256.43,-720.38 2256.43,-660.38 1714.43,-660.38"/>
<text text-anchor="start" x="1725.43" y="-680.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">checks_accepted_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="2184.96" y="-681.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-600.38 1714.43,-660.38 2256.43,-660.38 2256.43,-600.38 1714.43,-600.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-600.38 1714.43,-660.38 2256.43,-660.38 2256.43,-600.38 1714.43,-600.38"/>
<text text-anchor="start" x="1725.43" y="-620.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">checks_accepted_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="2072.98" y="-621.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1714.43,-540.38 1714.43,-600.38 2256.43,-600.38 2256.43,-540.38 1714.43,-540.38"/>
<polygon fill="none" stroke="#29235c" points="1714.43,-540.38 1714.43,-600.38 2256.43,-600.38 2256.43,-540.38 1714.43,-540.38"/>
<text text-anchor="start" x="1725.43" y="-560.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">checks_accepted_comment &#160;&#160;&#160;</text>
<text text-anchor="start" x="2193.86" y="-561.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">text</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1713.43,-539.38 1713.43,-2581.38 2257.43,-2581.38 2257.43,-539.38 1713.43,-539.38"/>
</a>
</g>
</g>
<!-- financial_statement_meta&#45;&gt;statement_type -->
<g id="edge19" class="edge">
<title>financial_statement_meta:e&#45;&gt;statement_type:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-2310.17C2359.89,-2310.17 2382.98,-2344.17 2485.43,-2344.17"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-2310.38C2359.89,-2310.38 2382.98,-2344.38 2485.43,-2344.38"/>
</g>
<!-- financial_statement_meta&#45;&gt;app_user -->
<!-- financial_statement_meta&#45;&gt;app_user -->
<g id="edge6" class="edge">
<title>financial_statement_meta:e&#45;&gt;app_user:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-810.17C2804.17,-810.17 1988.67,-2002.88 2518.12,-2018.02"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2518.39,-2021.53 2528.43,-2018.17 2518.48,-2014.53 2518.39,-2021.53"/>
<text text-anchor="middle" x="2537.33" y="-2027.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="2263.65" y="-781.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-810.38C2804.17,-810.38 1988.67,-2003.1 2518.12,-2018.24"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2518.39,-2021.74 2528.43,-2018.38 2518.48,-2014.74 2518.39,-2021.74"/>
<text text-anchor="middle" x="2537.33" y="-2027.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="2263.65" y="-781.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_meta&#45;&gt;app_user -->
<!-- financial_statement_meta&#45;&gt;app_user -->
<g id="edge8" class="edge">
<title>financial_statement_meta:e&#45;&gt;app_user:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-690.17C2856.43,-690.17 1936.49,-2003.3 2518.43,-2018.04"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2518.39,-2021.54 2528.43,-2018.17 2518.48,-2014.54 2518.39,-2021.54"/>
<text text-anchor="middle" x="2537.33" y="-1989.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="2263.65" y="-661.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-690.38C2856.43,-690.38 1936.49,-2003.51 2518.43,-2018.26"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2518.39,-2021.76 2528.43,-2018.38 2518.48,-2014.76 2518.39,-2021.76"/>
<text text-anchor="middle" x="2537.33" y="-1989.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="2263.65" y="-661.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_meta&#45;&gt;document -->
<!-- financial_statement_meta&#45;&gt;document -->
<g id="edge2" class="edge">
<title>financial_statement_meta:e&#45;&gt;document:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-2430.38C2364,-2430.38 2326.29,-2548.39 2407.51,-2617.38 2450.33,-2653.75 2463.27,-2680.14 2514.42,-2683.1"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2514.34,-2686.6 2524.43,-2683.38 2514.53,-2679.61 2514.34,-2686.6"/>
<text text-anchor="middle" x="2533.33" y="-2692.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="2263.65" y="-2439.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_meta&#45;&gt;recognition_job -->
<!-- financial_statement_meta&#45;&gt;recognition_job -->
<g id="edge4" class="edge">
<title>financial_statement_meta:e&#45;&gt;recognition_job:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-2370.17C2368.86,-2370.17 2371.47,-2483.01 2476.31,-2489.85"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2476.33,-2493.35 2486.43,-2490.17 2476.55,-2486.35 2476.33,-2493.35"/>
<text text-anchor="middle" x="2495.33" y="-2499.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="2263.65" y="-2379.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_meta&#45;&gt;stored_file -->
<!-- financial_statement_meta&#45;&gt;stored_file -->
<g id="edge2" class="edge">
<title>financial_statement_meta:e&#45;&gt;stored_file:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-2430.17C2364,-2430.17 2326.81,-2547.57 2407.51,-2617.17 2448.87,-2652.84 2460.88,-2679.74 2510.38,-2682.86"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2510.33,-2686.36 2520.43,-2683.17 2510.54,-2679.37 2510.33,-2686.36"/>
<text text-anchor="middle" x="2529.33" y="-2692.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="2263.65" y="-2439.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2257.43,-2370.38C2368.86,-2370.38 2371.47,-2483.23 2476.31,-2490.06"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2476.33,-2493.56 2486.43,-2490.38 2476.55,-2486.57 2476.33,-2493.56"/>
<text text-anchor="middle" x="2495.33" y="-2499.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="2263.65" y="-2379.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_column -->
<g id="financial_statement_column" class="node">
<title>financial_statement_column</title>
<g id="a_financial_statement_column"><a xlink:title="financial_statement_column&#10;Колонки&#45;периоды формы (2–3 сравнительные даты)">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1167.37" cy="-1463.17" rx="386.57" ry="299.63"/>
<polygon fill="#1d71b8" stroke="transparent" points="896.37,-1613.17 896.37,-1673.17 1439.37,-1673.17 1439.37,-1613.17 896.37,-1613.17"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1613.17 896.37,-1673.17 1439.37,-1673.17 1439.37,-1613.17 896.37,-1613.17"/>
<text text-anchor="start" x="907.35" y="-1634.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;financial_statement_column &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1553.17 896.37,-1613.17 1439.37,-1613.17 1439.37,-1553.17 896.37,-1553.17"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1553.17 896.37,-1613.17 1439.37,-1613.17 1439.37,-1553.17 896.37,-1553.17"/>
<text text-anchor="start" x="907.37" y="-1574.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="932.26" y="-1574.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1367.9" y="-1574.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1493.17 896.37,-1553.17 1439.37,-1553.17 1439.37,-1493.17 896.37,-1493.17"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1493.17 896.37,-1553.17 1439.37,-1553.17 1439.37,-1493.17 896.37,-1493.17"/>
<text text-anchor="start" x="907.37" y="-1513.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">meta_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1328.81" y="-1514.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1389.28" y="-1514.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1398.17" y="-1514.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1433.17 896.37,-1493.17 1439.37,-1493.17 1439.37,-1433.17 896.37,-1433.17"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1433.17 896.37,-1493.17 1439.37,-1493.17 1439.37,-1433.17 896.37,-1433.17"/>
<text text-anchor="start" x="907.37" y="-1453.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">column_index &#160;&#160;&#160;</text>
<text text-anchor="start" x="1280.85" y="-1454.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<text text-anchor="start" x="1389.28" y="-1454.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1398.17" y="-1454.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1373.17 896.37,-1433.17 1439.37,-1433.17 1439.37,-1373.17 896.37,-1373.17"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1373.17 896.37,-1433.17 1439.37,-1433.17 1439.37,-1373.17 896.37,-1373.17"/>
<text text-anchor="start" x="907.37" y="-1393.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">label &#160;&#160;&#160;</text>
<text text-anchor="start" x="1321.7" y="-1394.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1313.17 896.37,-1373.17 1439.37,-1373.17 1439.37,-1313.17 896.37,-1313.17"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1313.17 896.37,-1373.17 1439.37,-1373.17 1439.37,-1313.17 896.37,-1313.17"/>
<text text-anchor="start" x="907.37" y="-1333.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">period_date &#160;&#160;&#160;</text>
<text text-anchor="start" x="1366.11" y="-1334.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1253.17 896.37,-1313.17 1439.37,-1313.17 1439.37,-1253.17 896.37,-1253.17"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1253.17 896.37,-1313.17 1439.37,-1313.17 1439.37,-1253.17 896.37,-1253.17"/>
<text text-anchor="start" x="907.37" y="-1273.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_current &#160;&#160;&#160;</text>
<text text-anchor="start" x="1314.54" y="-1274.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="894.87,-1252.17 894.87,-1674.17 1439.87,-1674.17 1439.87,-1252.17 894.87,-1252.17"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1167.37" cy="-1463.38" rx="386.57" ry="299.63"/>
<polygon fill="#1d71b8" stroke="transparent" points="896.37,-1613.38 896.37,-1673.38 1439.37,-1673.38 1439.37,-1613.38 896.37,-1613.38"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1613.38 896.37,-1673.38 1439.37,-1673.38 1439.37,-1613.38 896.37,-1613.38"/>
<text text-anchor="start" x="907.35" y="-1634.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;financial_statement_column &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1553.38 896.37,-1613.38 1439.37,-1613.38 1439.37,-1553.38 896.37,-1553.38"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1553.38 896.37,-1613.38 1439.37,-1613.38 1439.37,-1553.38 896.37,-1553.38"/>
<text text-anchor="start" x="907.37" y="-1574.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="932.26" y="-1574.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1367.9" y="-1574.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1493.38 896.37,-1553.38 1439.37,-1553.38 1439.37,-1493.38 896.37,-1493.38"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1493.38 896.37,-1553.38 1439.37,-1553.38 1439.37,-1493.38 896.37,-1493.38"/>
<text text-anchor="start" x="907.37" y="-1513.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">meta_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1328.81" y="-1514.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1389.28" y="-1514.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1398.17" y="-1514.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1433.38 896.37,-1493.38 1439.37,-1493.38 1439.37,-1433.38 896.37,-1433.38"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1433.38 896.37,-1493.38 1439.37,-1493.38 1439.37,-1433.38 896.37,-1433.38"/>
<text text-anchor="start" x="907.37" y="-1453.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">column_index &#160;&#160;&#160;</text>
<text text-anchor="start" x="1280.85" y="-1454.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">smallint</text>
<text text-anchor="start" x="1389.28" y="-1454.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1398.17" y="-1454.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1373.38 896.37,-1433.38 1439.37,-1433.38 1439.37,-1373.38 896.37,-1373.38"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1373.38 896.37,-1433.38 1439.37,-1433.38 1439.37,-1373.38 896.37,-1373.38"/>
<text text-anchor="start" x="907.37" y="-1393.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">label &#160;&#160;&#160;</text>
<text text-anchor="start" x="1321.7" y="-1394.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1313.38 896.37,-1373.38 1439.37,-1373.38 1439.37,-1313.38 896.37,-1313.38"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1313.38 896.37,-1373.38 1439.37,-1373.38 1439.37,-1313.38 896.37,-1313.38"/>
<text text-anchor="start" x="907.37" y="-1333.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">period_date &#160;&#160;&#160;</text>
<text text-anchor="start" x="1366.11" y="-1334.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">date</text>
<polygon fill="#e7e2dd" stroke="transparent" points="896.37,-1253.38 896.37,-1313.38 1439.37,-1313.38 1439.37,-1253.38 896.37,-1253.38"/>
<polygon fill="none" stroke="#29235c" points="896.37,-1253.38 896.37,-1313.38 1439.37,-1313.38 1439.37,-1253.38 896.37,-1253.38"/>
<text text-anchor="start" x="907.37" y="-1273.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_current &#160;&#160;&#160;</text>
<text text-anchor="start" x="1314.54" y="-1274.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="894.87,-1252.38 894.87,-1674.38 1439.87,-1674.38 1439.87,-1252.38 894.87,-1252.38"/>
</a>
</g>
</g>
@ -311,63 +311,63 @@
<!-- financial_statement_column&#45;&gt;financial_statement_meta -->
<g id="edge10" class="edge">
<title>financial_statement_column:e&#45;&gt;financial_statement_meta:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1440.37,-1523.17C1563.4,-1523.17 1523.13,-1654.9 1563.35,-1771.17 1615.57,-1922.11 1553.01,-2466.09 1703.23,-2489.4"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1703.2,-2492.9 1713.43,-2490.17 1703.72,-2485.92 1703.2,-2492.9"/>
<text text-anchor="middle" x="1722.33" y="-2499.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1446.59" y="-1494.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1440.37,-1523.38C1563.4,-1523.38 1523.13,-1655.11 1563.35,-1771.38 1615.57,-1922.32 1553.01,-2466.31 1703.23,-2489.61"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1703.2,-2493.12 1713.43,-2490.38 1703.72,-2486.14 1703.2,-2493.12"/>
<text text-anchor="middle" x="1722.33" y="-2499.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1446.59" y="-1494.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_line -->
<g id="financial_statement_line" class="node">
<title>financial_statement_line</title>
<g id="a_financial_statement_line"><a xlink:title="financial_statement_line&#10;Только строки с кодом; порядок, разделы и итоговые строки — шаблон формы ФСБУ 4/2023 на фронте">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1167.37" cy="-2250.17" rx="395.96" ry="469.54"/>
<polygon fill="#1d71b8" stroke="transparent" points="889.37,-2520.17 889.37,-2580.17 1445.37,-2580.17 1445.37,-2520.17 889.37,-2520.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2520.17 889.37,-2580.17 1445.37,-2580.17 1445.37,-2520.17 889.37,-2520.17"/>
<text text-anchor="start" x="933.52" y="-2541.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;financial_statement_line &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2460.17 889.37,-2520.17 1445.37,-2520.17 1445.37,-2460.17 889.37,-2460.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2460.17 889.37,-2520.17 1445.37,-2520.17 1445.37,-2460.17 889.37,-2460.17"/>
<text text-anchor="start" x="900.37" y="-2481.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="925.26" y="-2481.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1373.9" y="-2481.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2400.17 889.37,-2460.17 1445.37,-2460.17 1445.37,-2400.17 889.37,-2400.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2400.17 889.37,-2460.17 1445.37,-2460.17 1445.37,-2400.17 889.37,-2400.17"/>
<text text-anchor="start" x="900.37" y="-2420.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">meta_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1334.81" y="-2421.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1395.28" y="-2421.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1404.17" y="-2421.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2340.17 889.37,-2400.17 1445.37,-2400.17 1445.37,-2340.17 889.37,-2340.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2340.17 889.37,-2400.17 1445.37,-2400.17 1445.37,-2340.17 889.37,-2340.17"/>
<text text-anchor="start" x="900.37" y="-2360.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_code &#160;&#160;&#160;</text>
<text text-anchor="start" x="1327.7" y="-2361.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2280.17 889.37,-2340.17 1445.37,-2340.17 1445.37,-2280.17 889.37,-2280.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2280.17 889.37,-2340.17 1445.37,-2340.17 1445.37,-2280.17 889.37,-2280.17"/>
<text text-anchor="start" x="900.37" y="-2300.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_code_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="1327.7" y="-2301.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2220.17 889.37,-2280.17 1445.37,-2280.17 1445.37,-2220.17 889.37,-2220.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2220.17 889.37,-2280.17 1445.37,-2280.17 1445.37,-2220.17 889.37,-2220.17"/>
<text text-anchor="start" x="900.37" y="-2240.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_code_confidence &#160;&#160;&#160;</text>
<text text-anchor="start" x="1254.82" y="-2241.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(5,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2160.17 889.37,-2220.17 1445.37,-2220.17 1445.37,-2160.17 889.37,-2160.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2160.17 889.37,-2220.17 1445.37,-2220.17 1445.37,-2160.17 889.37,-2160.17"/>
<text text-anchor="start" x="900.37" y="-2180.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_code_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="1320.54" y="-2181.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2100.17 889.37,-2160.17 1445.37,-2160.17 1445.37,-2100.17 889.37,-2100.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2100.17 889.37,-2160.17 1445.37,-2160.17 1445.37,-2100.17 889.37,-2100.17"/>
<text text-anchor="start" x="900.37" y="-2120.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1327.7" y="-2121.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2040.17 889.37,-2100.17 1445.37,-2100.17 1445.37,-2040.17 889.37,-2040.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2040.17 889.37,-2100.17 1445.37,-2100.17 1445.37,-2040.17 889.37,-2040.17"/>
<text text-anchor="start" x="900.37" y="-2060.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_name_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="1327.7" y="-2061.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-1980.17 889.37,-2040.17 1445.37,-2040.17 1445.37,-1980.17 889.37,-1980.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-1980.17 889.37,-2040.17 1445.37,-2040.17 1445.37,-1980.17 889.37,-1980.17"/>
<text text-anchor="start" x="900.03" y="-2000.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_name_confidence &#160;&#160;&#160;</text>
<text text-anchor="start" x="1255.1" y="-2001.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(5,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-1920.17 889.37,-1980.17 1445.37,-1980.17 1445.37,-1920.17 889.37,-1920.17"/>
<polygon fill="none" stroke="#29235c" points="889.37,-1920.17 889.37,-1980.17 1445.37,-1980.17 1445.37,-1920.17 889.37,-1920.17"/>
<text text-anchor="start" x="900.37" y="-1940.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_name_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="1320.54" y="-1941.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="888.37,-1919.17 888.37,-2581.17 1446.37,-2581.17 1446.37,-1919.17 888.37,-1919.17"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1167.37" cy="-2250.38" rx="395.96" ry="469.54"/>
<polygon fill="#1d71b8" stroke="transparent" points="889.37,-2520.38 889.37,-2580.38 1445.37,-2580.38 1445.37,-2520.38 889.37,-2520.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2520.38 889.37,-2580.38 1445.37,-2580.38 1445.37,-2520.38 889.37,-2520.38"/>
<text text-anchor="start" x="933.52" y="-2541.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;financial_statement_line &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2460.38 889.37,-2520.38 1445.37,-2520.38 1445.37,-2460.38 889.37,-2460.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2460.38 889.37,-2520.38 1445.37,-2520.38 1445.37,-2460.38 889.37,-2460.38"/>
<text text-anchor="start" x="900.37" y="-2481.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="925.26" y="-2481.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1373.9" y="-2481.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2400.38 889.37,-2460.38 1445.37,-2460.38 1445.37,-2400.38 889.37,-2400.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2400.38 889.37,-2460.38 1445.37,-2460.38 1445.37,-2400.38 889.37,-2400.38"/>
<text text-anchor="start" x="900.37" y="-2420.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">meta_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="1334.81" y="-2421.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="1395.28" y="-2421.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="1404.17" y="-2421.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2340.38 889.37,-2400.38 1445.37,-2400.38 1445.37,-2340.38 889.37,-2340.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2340.38 889.37,-2400.38 1445.37,-2400.38 1445.37,-2340.38 889.37,-2340.38"/>
<text text-anchor="start" x="900.37" y="-2360.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_code &#160;&#160;&#160;</text>
<text text-anchor="start" x="1327.7" y="-2361.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2280.38 889.37,-2340.38 1445.37,-2340.38 1445.37,-2280.38 889.37,-2280.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2280.38 889.37,-2340.38 1445.37,-2340.38 1445.37,-2280.38 889.37,-2280.38"/>
<text text-anchor="start" x="900.37" y="-2300.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_code_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="1327.7" y="-2301.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2220.38 889.37,-2280.38 1445.37,-2280.38 1445.37,-2220.38 889.37,-2220.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2220.38 889.37,-2280.38 1445.37,-2280.38 1445.37,-2220.38 889.37,-2220.38"/>
<text text-anchor="start" x="900.37" y="-2240.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_code_confidence &#160;&#160;&#160;</text>
<text text-anchor="start" x="1254.82" y="-2241.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(5,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2160.38 889.37,-2220.38 1445.37,-2220.38 1445.37,-2160.38 889.37,-2160.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2160.38 889.37,-2220.38 1445.37,-2220.38 1445.37,-2160.38 889.37,-2160.38"/>
<text text-anchor="start" x="900.37" y="-2180.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_code_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="1320.54" y="-2181.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2100.38 889.37,-2160.38 1445.37,-2160.38 1445.37,-2100.38 889.37,-2100.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2100.38 889.37,-2160.38 1445.37,-2160.38 1445.37,-2100.38 889.37,-2100.38"/>
<text text-anchor="start" x="900.37" y="-2120.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_name &#160;&#160;&#160;</text>
<text text-anchor="start" x="1327.7" y="-2121.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-2040.38 889.37,-2100.38 1445.37,-2100.38 1445.37,-2040.38 889.37,-2040.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-2040.38 889.37,-2100.38 1445.37,-2100.38 1445.37,-2040.38 889.37,-2040.38"/>
<text text-anchor="start" x="900.37" y="-2060.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_name_original_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="1327.7" y="-2061.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-1980.38 889.37,-2040.38 1445.37,-2040.38 1445.37,-1980.38 889.37,-1980.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-1980.38 889.37,-2040.38 1445.37,-2040.38 1445.37,-1980.38 889.37,-1980.38"/>
<text text-anchor="start" x="900.03" y="-2000.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_name_confidence &#160;&#160;&#160;</text>
<text text-anchor="start" x="1255.1" y="-2001.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(5,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="889.37,-1920.38 889.37,-1980.38 1445.37,-1980.38 1445.37,-1920.38 889.37,-1920.38"/>
<polygon fill="none" stroke="#29235c" points="889.37,-1920.38 889.37,-1980.38 1445.37,-1980.38 1445.37,-1920.38 889.37,-1920.38"/>
<text text-anchor="start" x="900.37" y="-1940.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_name_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="1320.54" y="-1941.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="888.37,-1919.38 888.37,-2581.38 1446.37,-2581.38 1446.37,-1919.38 888.37,-1919.38"/>
</a>
</g>
</g>
@ -375,103 +375,97 @@
<!-- financial_statement_line&#45;&gt;financial_statement_meta -->
<g id="edge12" class="edge">
<title>financial_statement_line:e&#45;&gt;financial_statement_meta:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1446.37,-2430.17C1564.58,-2430.17 1590.35,-2486.82 1703.33,-2490.03"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1703.38,-2493.53 1713.43,-2490.17 1703.48,-2486.53 1703.38,-2493.53"/>
<text text-anchor="middle" x="1722.33" y="-2461.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1452.59" y="-2439.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1446.37,-2430.38C1564.58,-2430.38 1590.35,-2487.03 1703.33,-2490.24"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1703.38,-2493.74 1713.43,-2490.38 1703.48,-2486.74 1703.38,-2493.74"/>
<text text-anchor="middle" x="1722.33" y="-2461.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="1452.59" y="-2439.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_value -->
<g id="financial_statement_value" class="node">
<title>financial_statement_value</title>
<ellipse fill="none" stroke="black" stroke-width="0" cx="367.7" cy="-1283.17" rx="367.89" ry="554.24"/>
<polygon fill="#1d71b8" stroke="transparent" points="109.7,-1613.17 109.7,-1673.17 625.7,-1673.17 625.7,-1613.17 109.7,-1613.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1613.17 109.7,-1673.17 625.7,-1673.17 625.7,-1613.17 109.7,-1613.17"/>
<text text-anchor="start" x="120.51" y="-1634.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;financial_statement_value &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1553.17 109.7,-1613.17 625.7,-1613.17 625.7,-1553.17 109.7,-1553.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1553.17 109.7,-1613.17 625.7,-1613.17 625.7,-1553.17 109.7,-1553.17"/>
<text text-anchor="start" x="120.7" y="-1574.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="145.59" y="-1574.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="554.23" y="-1574.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1493.17 109.7,-1553.17 625.7,-1553.17 625.7,-1493.17 109.7,-1493.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1493.17 109.7,-1553.17 625.7,-1553.17 625.7,-1493.17 109.7,-1493.17"/>
<text text-anchor="start" x="120.7" y="-1513.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="515.14" y="-1514.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="575.6" y="-1514.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="584.5" y="-1514.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1433.17 109.7,-1493.17 625.7,-1493.17 625.7,-1433.17 109.7,-1433.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1433.17 109.7,-1493.17 625.7,-1493.17 625.7,-1433.17 109.7,-1433.17"/>
<text text-anchor="start" x="120.7" y="-1453.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">column_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="515.14" y="-1454.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="575.6" y="-1454.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="584.5" y="-1454.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1373.17 109.7,-1433.17 625.7,-1433.17 625.7,-1373.17 109.7,-1373.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1373.17 109.7,-1433.17 625.7,-1433.17 625.7,-1373.17 109.7,-1373.17"/>
<text text-anchor="start" x="120.7" y="-1393.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">amount &#160;&#160;&#160;</text>
<text text-anchor="start" x="417.36" y="-1394.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1313.17 109.7,-1373.17 625.7,-1373.17 625.7,-1313.17 109.7,-1313.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1313.17 109.7,-1373.17 625.7,-1373.17 625.7,-1313.17 109.7,-1313.17"/>
<text text-anchor="start" x="120.7" y="-1333.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">string_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="508.02" y="-1334.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1253.17 109.7,-1313.17 625.7,-1313.17 625.7,-1253.17 109.7,-1253.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1253.17 109.7,-1313.17 625.7,-1313.17 625.7,-1253.17 109.7,-1253.17"/>
<text text-anchor="start" x="120.7" y="-1273.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">confidence &#160;&#160;&#160;</text>
<text text-anchor="start" x="435.15" y="-1274.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(5,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1193.17 109.7,-1253.17 625.7,-1253.17 625.7,-1193.17 109.7,-1193.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1193.17 109.7,-1253.17 625.7,-1253.17 625.7,-1193.17 109.7,-1193.17"/>
<text text-anchor="start" x="120.7" y="-1213.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_recognized &#160;&#160;&#160;</text>
<text text-anchor="start" x="500.86" y="-1214.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1133.17 109.7,-1193.17 625.7,-1193.17 625.7,-1133.17 109.7,-1133.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1133.17 109.7,-1193.17 625.7,-1193.17 625.7,-1133.17 109.7,-1133.17"/>
<text text-anchor="start" x="120.7" y="-1153.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">needs_review &#160;&#160;&#160;</text>
<text text-anchor="start" x="461.77" y="-1154.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="575.6" y="-1154.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="584.5" y="-1154.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1073.17 109.7,-1133.17 625.7,-1133.17 625.7,-1073.17 109.7,-1073.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1073.17 109.7,-1133.17 625.7,-1133.17 625.7,-1073.17 109.7,-1073.17"/>
<text text-anchor="start" x="120.7" y="-1093.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="461.77" y="-1094.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="575.6" y="-1094.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="584.5" y="-1094.37" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1013.17 109.7,-1073.17 625.7,-1073.17 625.7,-1013.17 109.7,-1013.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1013.17 109.7,-1073.17 625.7,-1073.17 625.7,-1013.17 109.7,-1013.17"/>
<text text-anchor="start" x="120.7" y="-1033.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">original_amount &#160;&#160;&#160;</text>
<text text-anchor="start" x="417.36" y="-1034.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-953.17 109.7,-1013.17 625.7,-1013.17 625.7,-953.17 109.7,-953.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-953.17 109.7,-1013.17 625.7,-1013.17 625.7,-953.17 109.7,-953.17"/>
<text text-anchor="start" x="120.7" y="-973.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">modified_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="554.23" y="-974.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-893.17 109.7,-953.17 625.7,-953.17 625.7,-893.17 109.7,-893.17"/>
<polygon fill="none" stroke="#29235c" points="109.7,-893.17 109.7,-953.17 625.7,-953.17 625.7,-893.17 109.7,-893.17"/>
<text text-anchor="start" x="120.7" y="-913.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">modified_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="442.24" y="-914.37" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="108.7,-892.17 108.7,-1674.17 626.7,-1674.17 626.7,-892.17 108.7,-892.17"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="367.7" cy="-1313.38" rx="367.89" ry="511.89"/>
<polygon fill="#1d71b8" stroke="transparent" points="109.7,-1613.38 109.7,-1673.38 625.7,-1673.38 625.7,-1613.38 109.7,-1613.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1613.38 109.7,-1673.38 625.7,-1673.38 625.7,-1613.38 109.7,-1613.38"/>
<text text-anchor="start" x="120.51" y="-1634.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;financial_statement_value &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1553.38 109.7,-1613.38 625.7,-1613.38 625.7,-1553.38 109.7,-1553.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1553.38 109.7,-1613.38 625.7,-1613.38 625.7,-1553.38 109.7,-1553.38"/>
<text text-anchor="start" x="120.7" y="-1574.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="145.59" y="-1574.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="554.23" y="-1574.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1493.38 109.7,-1553.38 625.7,-1553.38 625.7,-1493.38 109.7,-1493.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1493.38 109.7,-1553.38 625.7,-1553.38 625.7,-1493.38 109.7,-1493.38"/>
<text text-anchor="start" x="120.7" y="-1513.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">line_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="515.14" y="-1514.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="575.6" y="-1514.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="584.5" y="-1514.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1433.38 109.7,-1493.38 625.7,-1493.38 625.7,-1433.38 109.7,-1433.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1433.38 109.7,-1493.38 625.7,-1493.38 625.7,-1433.38 109.7,-1433.38"/>
<text text-anchor="start" x="120.7" y="-1453.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">column_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="515.14" y="-1454.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="575.6" y="-1454.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="584.5" y="-1454.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1373.38 109.7,-1433.38 625.7,-1433.38 625.7,-1373.38 109.7,-1373.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1373.38 109.7,-1433.38 625.7,-1433.38 625.7,-1373.38 109.7,-1373.38"/>
<text text-anchor="start" x="120.7" y="-1393.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">amount &#160;&#160;&#160;</text>
<text text-anchor="start" x="417.36" y="-1394.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1313.38 109.7,-1373.38 625.7,-1373.38 625.7,-1313.38 109.7,-1313.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1313.38 109.7,-1373.38 625.7,-1373.38 625.7,-1313.38 109.7,-1313.38"/>
<text text-anchor="start" x="120.7" y="-1333.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">string_value &#160;&#160;&#160;</text>
<text text-anchor="start" x="508.02" y="-1334.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">varchar</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1253.38 109.7,-1313.38 625.7,-1313.38 625.7,-1253.38 109.7,-1253.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1253.38 109.7,-1313.38 625.7,-1313.38 625.7,-1253.38 109.7,-1253.38"/>
<text text-anchor="start" x="120.7" y="-1273.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">confidence &#160;&#160;&#160;</text>
<text text-anchor="start" x="435.15" y="-1274.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(5,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1193.38 109.7,-1253.38 625.7,-1253.38 625.7,-1193.38 109.7,-1193.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1193.38 109.7,-1253.38 625.7,-1253.38 625.7,-1193.38 109.7,-1193.38"/>
<text text-anchor="start" x="120.7" y="-1213.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_recognized &#160;&#160;&#160;</text>
<text text-anchor="start" x="500.86" y="-1214.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1133.38 109.7,-1193.38 625.7,-1193.38 625.7,-1133.38 109.7,-1133.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1133.38 109.7,-1193.38 625.7,-1193.38 625.7,-1133.38 109.7,-1133.38"/>
<text text-anchor="start" x="120.7" y="-1153.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">is_modified &#160;&#160;&#160;</text>
<text text-anchor="start" x="461.77" y="-1154.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">boolean</text>
<text text-anchor="start" x="575.6" y="-1154.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="584.5" y="-1154.58" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1073.38 109.7,-1133.38 625.7,-1133.38 625.7,-1073.38 109.7,-1073.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1073.38 109.7,-1133.38 625.7,-1133.38 625.7,-1073.38 109.7,-1073.38"/>
<text text-anchor="start" x="120.7" y="-1093.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">original_amount &#160;&#160;&#160;</text>
<text text-anchor="start" x="417.36" y="-1094.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">numeric(18,2)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-1013.38 109.7,-1073.38 625.7,-1073.38 625.7,-1013.38 109.7,-1013.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-1013.38 109.7,-1073.38 625.7,-1073.38 625.7,-1013.38 109.7,-1013.38"/>
<text text-anchor="start" x="120.7" y="-1033.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">modified_by &#160;&#160;&#160;</text>
<text text-anchor="start" x="554.23" y="-1034.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="#e7e2dd" stroke="transparent" points="109.7,-953.38 109.7,-1013.38 625.7,-1013.38 625.7,-953.38 109.7,-953.38"/>
<polygon fill="none" stroke="#29235c" points="109.7,-953.38 109.7,-1013.38 625.7,-1013.38 625.7,-953.38 109.7,-953.38"/>
<text text-anchor="start" x="120.7" y="-973.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">modified_at &#160;&#160;&#160;</text>
<text text-anchor="start" x="442.24" y="-974.58" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">timestamptz</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="108.7,-952.38 108.7,-1674.38 626.7,-1674.38 626.7,-952.38 108.7,-952.38"/>
</g>
<!-- financial_statement_value&#45;&gt;app_user -->
<!-- financial_statement_value&#45;&gt;app_user -->
<g id="edge18" class="edge">
<title>financial_statement_value:e&#45;&gt;app_user:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M626.7,-983.17C820.05,-983.17 628.27,-255.18 771.39,-125.17 903.08,-5.54 2240.77,54.49 2371.51,-66.17 2528.84,-211.36 2317.85,-1960.45 2518.25,-2016.78"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2518.05,-2020.28 2528.43,-2018.17 2519,-2013.35 2518.05,-2020.28"/>
<text text-anchor="middle" x="2519.54" y="-2027.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="632.92" y="-954.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M626.7,-1043.38C833.21,-1043.38 619.27,-265.06 771.39,-125.38 902.44,-5.05 2240.77,54.27 2371.51,-66.38 2528.84,-211.57 2317.85,-1960.66 2518.25,-2016.99"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2518.05,-2020.5 2528.43,-2018.38 2519,-2013.56 2518.05,-2020.5"/>
<text text-anchor="middle" x="2519.54" y="-2027.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="632.92" y="-1014.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_value&#45;&gt;financial_statement_column -->
<!-- financial_statement_value&#45;&gt;financial_statement_column -->
<g id="edge16" class="edge">
<title>financial_statement_value:e&#45;&gt;financial_statement_column:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M626.7,-1463.17C754.03,-1463.17 764.13,-1576.92 885.28,-1582.92"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="885.29,-1586.42 895.37,-1583.17 885.46,-1579.43 885.29,-1586.42"/>
<text text-anchor="middle" x="904.27" y="-1563.97" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="632.92" y="-1434.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M626.7,-1463.38C754.03,-1463.38 764.13,-1577.14 885.28,-1583.14"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="885.29,-1586.64 895.37,-1583.38 885.46,-1579.64 885.29,-1586.64"/>
<text text-anchor="middle" x="904.27" y="-1564.18" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="632.92" y="-1434.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- financial_statement_value&#45;&gt;financial_statement_line -->
<!-- financial_statement_value&#45;&gt;financial_statement_line -->
<g id="edge14" class="edge">
<title>financial_statement_value:e&#45;&gt;financial_statement_line:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M626.7,-1523.17C845.83,-1523.17 671.39,-2460.19 878.23,-2489.47"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="878.15,-2492.97 888.37,-2490.17 878.64,-2485.99 878.15,-2492.97"/>
<text text-anchor="middle" x="897.27" y="-2499.77" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="632.92" y="-1494.37" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M626.7,-1523.38C845.83,-1523.38 671.39,-2460.4 878.23,-2489.68"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="878.15,-2493.19 888.37,-2490.38 878.64,-2486.2 878.15,-2493.19"/>
<text text-anchor="middle" x="897.27" y="-2499.98" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="632.92" y="-1494.58" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 698 KiB

After

Width:  |  Height:  |  Size: 517 KiB

View File

@ -138,6 +138,23 @@
</a>
</g>
</g>
<!-- document -->
<g id="document" class="node">
<title>document</title>
<g id="a_document"><a xlink:title="document&#10;STUB — полное определение в part04_files_jobs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1219.7" cy="-87.68" rx="205.12" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1076.7,-87.68 1076.7,-147.68 1362.7,-147.68 1362.7,-87.68 1076.7,-87.68"/>
<polygon fill="none" stroke="#29235c" points="1076.7,-87.68 1076.7,-147.68 1362.7,-147.68 1362.7,-87.68 1076.7,-87.68"/>
<text text-anchor="start" x="1087.2" y="-108.88" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;document &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1076.7,-27.68 1076.7,-87.68 1362.7,-87.68 1362.7,-27.68 1076.7,-27.68"/>
<polygon fill="none" stroke="#29235c" points="1076.7,-27.68 1076.7,-87.68 1362.7,-87.68 1362.7,-27.68 1076.7,-27.68"/>
<text text-anchor="start" x="1087.7" y="-48.88" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1112.59" y="-48.88" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1291.23" y="-48.88" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1075.7,-26.68 1075.7,-148.68 1363.7,-148.68 1363.7,-26.68 1075.7,-26.68"/>
</a>
</g>
</g>
<!-- legal_entity -->
<g id="legal_entity" class="node">
<title>legal_entity</title>
@ -189,23 +206,6 @@
</a>
</g>
</g>
<!-- stored_file -->
<g id="stored_file" class="node">
<title>stored_file</title>
<g id="a_stored_file"><a xlink:title="stored_file&#10;STUB — полное определение в part04_files_jobs">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1219.7" cy="-87.68" rx="210.94" ry="87.86"/>
<polygon fill="#1d71b8" stroke="transparent" points="1072.7,-87.68 1072.7,-147.68 1366.7,-147.68 1366.7,-87.68 1072.7,-87.68"/>
<polygon fill="none" stroke="#29235c" points="1072.7,-87.68 1072.7,-147.68 1366.7,-147.68 1366.7,-87.68 1072.7,-87.68"/>
<text text-anchor="start" x="1083.66" y="-108.88" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff"> &#160;&#160;&#160;&#160;&#160;&#160;stored_file &#160;&#160;&#160;&#160;&#160;&#160;</text>
<polygon fill="#e7e2dd" stroke="transparent" points="1072.7,-27.68 1072.7,-87.68 1366.7,-87.68 1366.7,-27.68 1072.7,-27.68"/>
<polygon fill="none" stroke="#29235c" points="1072.7,-27.68 1072.7,-87.68 1366.7,-87.68 1366.7,-27.68 1072.7,-27.68"/>
<text text-anchor="start" x="1083.7" y="-48.88" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text>
<text text-anchor="start" x="1108.59" y="-48.88" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> &#160;&#160;&#160;</text>
<text text-anchor="start" x="1295.23" y="-48.88" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<polygon fill="none" stroke="#29235c" stroke-width="2" points="1071.7,-26.68 1071.7,-148.68 1367.7,-148.68 1367.7,-26.68 1071.7,-26.68"/>
</a>
</g>
</g>
<!-- consolidation -->
<g id="consolidation" class="node">
<title>consolidation</title>
@ -699,7 +699,7 @@
<!-- consolidation_document -->
<g id="consolidation_document" class="node">
<title>consolidation_document</title>
<g id="a_consolidation_document"><a xlink:title="consolidation_document&#10;ADD Прил. 2 ТЗ «Документ ФО → Консолидация»: явная привязка файлов к версии (переиспользование одного файла в нескольких версиях/периодах, монозаёмщики из ЕХ)">
<g id="a_consolidation_document"><a xlink:title="consolidation_document&#10;ADD Прил. 2 ТЗ «Документ ФО → Консолидация»: явная привязка документов к версии (переиспользование в нескольких версиях/периодах, монозаёмщики из ЕХ). Чек&#45;лист = required_document_rule × периметр − consolidation_document">
<ellipse fill="none" stroke="black" stroke-width="0" cx="390.32" cy="-384.68" rx="360.75" ry="172.57"/>
<polygon fill="#1d71b8" stroke="transparent" points="137.32,-444.68 137.32,-504.68 643.32,-504.68 643.32,-444.68 137.32,-444.68"/>
<polygon fill="none" stroke="#29235c" points="137.32,-444.68 137.32,-504.68 643.32,-504.68 643.32,-444.68 137.32,-444.68"/>
@ -717,7 +717,7 @@
<text text-anchor="start" x="602.4" y="-345.88" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
<polygon fill="#e7e2dd" stroke="transparent" points="137.32,-264.68 137.32,-324.68 643.32,-324.68 643.32,-264.68 137.32,-264.68"/>
<polygon fill="none" stroke="#29235c" points="137.32,-264.68 137.32,-324.68 643.32,-324.68 643.32,-264.68 137.32,-264.68"/>
<text text-anchor="start" x="148.32" y="-284.88" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">stored_file_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="148.32" y="-284.88" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">document_id &#160;&#160;&#160;</text>
<text text-anchor="start" x="532.76" y="-285.88" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">uuid</text>
<text text-anchor="start" x="593.23" y="-285.88" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text>
<text text-anchor="start" x="602.12" y="-285.88" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text>
@ -725,13 +725,13 @@
</a>
</g>
</g>
<!-- consolidation_document&#45;&gt;stored_file -->
<!-- consolidation_document&#45;&gt;stored_file -->
<!-- consolidation_document&#45;&gt;document -->
<!-- consolidation_document&#45;&gt;document -->
<g id="edge38" class="edge">
<title>consolidation_document:e&#45;&gt;stored_file:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M644.32,-294.68C735.42,-294.68 737.39,-228.6 816.65,-183.68 923.64,-123.05 944.18,-61.16 1061.56,-57.82"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1061.75,-61.32 1071.7,-57.68 1061.65,-54.32 1061.75,-61.32"/>
<text text-anchor="middle" x="1062.8" y="-28.88" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<title>consolidation_document:e&#45;&gt;document:w</title>
<path fill="none" stroke="#29235c" stroke-width="3" d="M644.32,-294.68C735.42,-294.68 737.25,-228.35 816.65,-183.68 925.18,-122.62 946.53,-61.14 1065.43,-57.82"/>
<polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1065.75,-61.32 1075.7,-57.68 1065.65,-54.32 1065.75,-61.32"/>
<text text-anchor="middle" x="1066.8" y="-28.88" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<text text-anchor="middle" x="650.55" y="-304.28" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text>
</g>
<!-- consolidation_document&#45;&gt;consolidation_version -->

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 816 KiB

After

Width:  |  Height:  |  Size: 604 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 KiB

After

Width:  |  Height:  |  Size: 637 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 85 KiB

View File

@ -1,12 +1,12 @@
schema: spec-driven
context: |
Репозиторий arm-ka-docs — контекст, модель данных (DBML v5.14), правила домена, контракты между сервисами
Репозиторий arm-ka-docs — контекст, модель данных (DBML v5.17), правила домена, контракты между сервисами
(docs/contracts/*.schema.json), макет UI и экспорт ТЗ системы АРМ КА (ДКБ, Россельхозбанк).
Здесь оформляются СКВОЗНЫЕ изменения: контракт + окружение разработки (docs/dev) + проверки качества (make check) + изменения
документов контекста. Код сервисов живёт в соседних репозиториях (../arm-core, ../tabular-parser, ../scan-gateway),
у каждого свой openspec/ и свой change; сквозной change ссылается на них.
Источники истины по приоритету: docs/model/data-model-v5.14.dbml → docs/model/entities-v5.14.md →
Источники истины по приоритету: docs/model/data-model-v5.17.dbml → docs/model/entities-v5.17.md →
docs/context/05-domain-rules.md → docs/source/tz (черновик, имена v4). Открытые вопросы — docs/context/07-open-questions.md;
план срезов — docs/context/09-delivery-plan.md; соглашения шаблона команды — docs/context/03-architecture.md.
Язык документов и коммитов — русский, идентификаторы — английские, как в DBML. docs/source/** не редактируется.

View File

@ -25,7 +25,7 @@ Docker, PostgreSQL или NATS.
Каждый сервисный репозиторий SHALL предоставлять цель `make check-full`: `make check` плюс `pytest -m integration` против
инфраструктуры `docs/dev/docker-compose.yml` (PostgreSQL 16, NATS, MinIO, для `scan-gateway` — эмулятор). Для `arm-core`
цель SHALL дополнительно выполнять «`alembic upgrade head` → `alembic downgrade base` → `alembic upgrade head`» на чистой
БД и `python scripts/check_dbml_vs_orm.py` против `../docs/model/data-model-v5.13.dbml`. `make check-full` SHALL быть
БД и `python scripts/check_dbml_vs_orm.py` против текущей версии модели (`../docs/model/data-model-v<текущая>.dbml`, путь — переменная `DBML` Makefile). `make check-full` SHALL быть
выполнен перед созданием PR, его итог вписывается в описание PR.
#### Scenario: Расхождение ORM и DBML

View File

@ -0,0 +1,145 @@
"""Диаграммы модели данных по частям: DBML → 9 частичных DBML → SVG (dbml-renderer) → PNG (resvg).
Запуск из корня репозитория: `make diagrams` (или `python3 scripts/gen_model_diagrams.py model/data-model-v5.17.dbml`).
Нужны Node.js и npx: пакеты рендера ставятся через `npx -y` с закреплёнными версиями (см. RENDERER, RASTERIZER).
Каждая часть — таблицы своей области плюс заглушки STUB (только `id`) для связей с таблицами других частей; в частичный
DBML копируются шапка «Ключи», решения DECISION-* и используемые enum'ы. Раскладка частей — как в
`context/04-data-model-guide.md`, «Девять частей модели»; новая таблица DBML, не попавшая ни в одну часть, — ошибка.
Промежуточные частичные DBML пишутся во временный каталог (с `--keep-parts DIR` — в DIR).
"""
import argparse
import pathlib
import re
import subprocess
import sys
import tempfile
RENDERER = "@softwaretechnik/dbml-renderer@1.0.31"
RASTERIZER = "@resvg/resvg-js-cli@2.6.2-beta.1"
PNG_WIDTH = "2200"
PARTS = {
"01_groups_entities": (
"ГК, ГСК/ГСЗ, организации, филиалы",
["regional_office", "company_group", "company_group_history", "legal_entity", "legal_entity_history", "legal_entity_alias", "related_group", "related_group_member"],
),
"02_users_access": ("Пользователи и роли", ["app_user", "role", "permission", "role_permission", "user_role"]),
"03_accounting_refs": (
"План счетов, правила элиминации, обязательные документы",
["chart_of_account", "elimination_rule", "elimination_rule_account", "required_document_rule"],
),
"04_files_jobs": (
"Файлы, документы, S3, задания распознавания (NATS)",
["s3_object", "stored_file", "document", "recognition_job"],
),
"05_osv_parsed": ("Разобранные ОСВ", ["osv_entry"]),
"06_statements": (
"Распознанные формы ББ/ОФР и логические проверки",
["financial_statement_meta", "financial_statement_column", "financial_statement_line", "financial_statement_value"],
),
"07_consolidation": (
"Консолидация: версии, статусы, периметр, документы, блокировка",
["consolidation", "consolidation_version", "consolidation_status_history", "consolidation_lock", "consolidation_member", "consolidation_document"],
),
"08_corrections_kfo": (
"Корректировки, гудвилл, результат КФО, подтверждение КФО клиента",
["correction", "goodwill", "kfo_result", "kfo_result_line", "kfo_result_line_company", "client_kfo_line"],
),
"09_audit_ex": ("Комментарии, аудит, ЕХФД", ["comment", "audit_event", "ex_snapshot", "ex_snapshot_member", "ex_snapshot_item"]),
}
LEGEND = (
"// Над каждой таблицей — блок «ИСТОЧНИК»: ТЗ АРМ КА BIQ-34 / ЕХ ТЗ BIQ-34649 / Методика; страница аналитики (md);\n"
"// экран макета dkb_24.09.26; версия модели, в которой таблица появилась (v4 = исходная DBML аналитики, v5+ = добавлено по ТЗ/макету).\n"
"// Правило v5.3+: в модели только сущности из ТЗ или с экрана макета, плюс инфраструктура обмена (s3_object, recognition_job)."
)
def parse_items(src: str) -> dict[str, tuple[str, str]]:
"""Блоки `Enum`/`Table` с комментариями над ними: имя → (вид, текст блока)."""
items = {}
for m in re.finditer(r"^(Enum|Table)\s+(\w+)\s*\{", src, re.MULTILINE):
i, depth = m.end(), 1
while depth:
c = src[i]
depth += (c == "{") - (c == "}")
i += 1
before = src[: m.start()].rstrip("\n").split("\n")
comments = []
while before and before[-1].startswith("//"):
comments.insert(0, before.pop())
items[m.group(2)] = (m.group(1), ("\n".join(comments) + "\n" if comments else "") + src[m.start() : i])
return items
def split_parts(src: str, src_name: str, version: str) -> dict[str, str]:
"""Текст частичного DBML для каждой части."""
items = parse_items(src)
enums = {k: v[1] for k, v in items.items() if v[0] == "Enum"}
tables = {k: v[1] for k, v in items.items() if v[0] == "Table"}
assigned = [t for _, ts in PARTS.values() for t in ts]
if set(tables) != set(assigned):
sys.exit(f"Раскладка частей не совпадает с таблицами DBML (поправить PARTS): {sorted(set(tables) ^ set(assigned))}")
owner = {t: p for p, (_, ts) in PARTS.items() for t in ts}
decisions = src[src.index("// DECISION-1") : src.index("// ============ ENUMS")].strip()
conventions = src[src.index("// Ключи:") : src.index("// DECISION-1")].strip()
index = "\n".join(f"// part{p}: {t}" for p, (t, _) in PARTS.items())
out = {}
for pname, (title, ts) in PARTS.items():
body = "\n\n".join(tables[t] for t in ts)
used_enums = [e for e in enums if re.search(r"\b" + e + r"\b", body)]
refs = set(re.findall(r"ref:\s*[<>-]\s*(\w+)\.", body))
stubs = sorted(r for r in refs if r not in ts)
stub = "\n\n".join(
f"Table {r} {{\n id uuid [pk]\n Note: 'STUB — полное определение в part{owner[r]}'\n}}" for r in stubs
)
out[pname] = (
f"// ДКБ · Модель данных {version} · part{pname}: {title}\n"
f"// Часть общей модели {src_name} (единый источник истины; при правках менять обе).\n"
f"// Части:\n{index}\n"
"// Таблицы STUB ниже — заглушки (только id) для связей; их определения — в указанной части.\n"
+ LEGEND + "\n//\n" + conventions + "\n//\n" + decisions
+ "\n\n// ============ ENUMS ============\n" + "\n\n".join(enums[e] for e in used_enums)
+ ("\n\n// ============ STUBS (таблицы других частей) ============\n" + stub if stubs else "")
+ "\n\n// ============ TABLES ============\n" + body + "\n"
)
print(f"part{pname}: таблиц {len(ts)}, заглушек {len(stubs)}")
return out
def render(part_dbml: pathlib.Path, svg: pathlib.Path, png: pathlib.Path) -> None:
subprocess.run(["npx", "-y", RENDERER, "-i", str(part_dbml), "-o", str(svg)], check=True)
subprocess.run(
["npx", "-y", RASTERIZER, "--fit-width", PNG_WIDTH, "--background", "white", str(svg), str(png)],
check=True,
stdout=subprocess.DEVNULL,
)
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__.splitlines()[0])
parser.add_argument("dbml", type=pathlib.Path, help="общая модель, например model/data-model-v5.17.dbml")
parser.add_argument("--out", type=pathlib.Path, default=pathlib.Path("model/diagrams"), help="каталог SVG/PNG")
parser.add_argument("--keep-parts", type=pathlib.Path, help="сохранить частичные DBML в этот каталог")
args = parser.parse_args()
m = re.search(r"data-model-(v[\d.]+)\.dbml$", args.dbml.name)
if not m:
sys.exit(f"Имя файла модели должно быть data-model-v<версия>.dbml: {args.dbml.name}")
parts = split_parts(args.dbml.read_text(encoding="utf-8"), args.dbml.name, m.group(1))
args.out.mkdir(parents=True, exist_ok=True)
with tempfile.TemporaryDirectory() as tmp:
parts_dir = args.keep_parts or pathlib.Path(tmp)
parts_dir.mkdir(parents=True, exist_ok=True)
for pname, text in parts.items():
part_dbml = parts_dir / f"data-model-{m.group(1)}-part{pname}.dbml"
part_dbml.write_text(text, encoding="utf-8")
render(part_dbml, args.out / f"part{pname}.svg", args.out / f"part{pname}.png")
print(f" → {args.out}/part{pname}.svg, .png")
if __name__ == "__main__":
main()