91 lines
6.1 KiB
Markdown
91 lines
6.1 KiB
Markdown
# Отчёт генерации DAL (проект_dal) — прогон 2026-09-08, завершён БЛОКИРОВКОЙ на этапе 3
|
||
|
||
## Статус
|
||
|
||
| Этап | Статус |
|
||
|---|---|
|
||
| 0_scan (разведка) | done |
|
||
| 1_rules (правила MCP) | done |
|
||
| 2_spec (спецификации тестов) | done — утверждены пользователем |
|
||
| 3_code (генерация) | **blocked** — конфликт транспорта (см. ниже) |
|
||
| 4_validate | не выполнялся |
|
||
| 5_report/DONE | не выполнялся |
|
||
|
||
## Версии правил
|
||
|
||
- Каталог MCP standarts-catalog: **1.2** (= rules-baseline.json 1.2).
|
||
- Области: c-dal 1.1, d-tst 1.1, c-tst 1.1, c-cs 1.1, db-m 1.1, db-s 1.1 (все
|
||
от 2026-09-04; составы правил совпали с baseline). Дополнительно загружены:
|
||
db-func 1.1, db-tst 1.1, c-dm 1.1, d-dev 1.1, d-db 1.1.
|
||
- `validate-rules` не требовался (расхождений нет).
|
||
|
||
## Причина блокировки
|
||
|
||
Транспорт `Kit.Helpers` (`SqlHelperPostgres.UpdateParamNames`) строит вызов
|
||
хранимой функции с именованными аргументами `_<имя> => :_<имя>`, добавляя `_`
|
||
к ключу параметра. Все функции экосистемы Kit (course, partner) объявлены с
|
||
параметрами `_<имя>` (_guid, _partner_id). Функции слоя chk объявлены по
|
||
правилу **db-func-5** с префиксом `p_` (p_check_date, p_id, ...) — такой вызов
|
||
через Kit.Helpers невозможен (`_p_check_date` ≠ `p_check_date` → «function
|
||
does not exist»).
|
||
|
||
**Решение пользователя (2026-09-08):** стандарт db-func-5 сохраняется (`p_`);
|
||
генерация DAL заблокирована до доработки Kit.Helpers (администратор Kit):
|
||
варианты — политика именования параметров в транспорте (не добавлять `_`,
|
||
если ключ уже имеет префикс `p_`/`_`) либо иной согласованный механизм.
|
||
|
||
## Слой БД (создано в этом прогоне, статус DEV / «Функция»=CODE)
|
||
|
||
- `DB/chk/functions/*.sql` — 7 функций: chk_type_select, chk_status_select,
|
||
chk_check_insert, chk_check_update, chk_check_delete, chk_check_select,
|
||
chk_check_get (db-func-2..8; db-m-3/4/5/8; db-s-8).
|
||
- `DB/chk/func_specs/*.md` — 7 спецификаций с тест-планами (d-db-9).
|
||
- `DB/chk/tests/test_*.psql` — 7 psql-тестов, нумерация = строкам спецификаций
|
||
(db-tst-1..3, db-tst-6). **Не выполнялись** — нужна тестовая база PostgreSQL:
|
||
`psql -d <база> -f DB/chk/tests/test_*.psql`.
|
||
- `DB/chk/functions.md` — статусы обновлены; `tables.md`, `DB/readme.md` — синхронизированы.
|
||
- `db/manifest.json` — FRESH, 3 сущности (ChkCheck CRUD; ChkType/ChkStatus — select).
|
||
|
||
## Решение C# (создано)
|
||
|
||
- `MT.Check.slnx`; `MT.Check.Core.Dal` (net10.0; ProjectReference на
|
||
`I:\Gitea\Kit\Kit.Core\Kit.Core\Kit.Core.csproj`); `MT.Check.Core.Dal.Tests` (xunit).
|
||
- Домен: `Chk/Domain/ChkType.cs` (+ChkTypes), `ChkStatus.cs` (+ChkStatuses),
|
||
`ChkCheck.cs` (c-dm-1..11; chk_type_id → TypeId и т.п.).
|
||
- Репозитории-заготовки: `Chk/Repository/ChkCheckRepository.cs` (Insert/Update/
|
||
Delete/Select/Get), `ChkTypeRepository.cs`, `ChkStatusRepository.cs` (Select —
|
||
c-dal-2: системные справочники только чтение); фильтр
|
||
`Chk/Repository/Filter/ChkCheckFilter.cs` (c-dal-14/15).
|
||
- Тест-хелперы: `Tests/Helpers/ConnectionStringTest.cs`, `DataTableAssertExtensions.cs`
|
||
(по шаблонам навыка).
|
||
- Имена: решение MT.Check, проект MT.Check.Core.Dal — заданы пользователем
|
||
(умолчание от имени папки отклонено из-за кириллической «С» в «MT.Сhecks»).
|
||
|
||
## Результаты build/test/check
|
||
|
||
- `dotnet build MT.Check.slnx` — **0 ошибок** (предупреждения NU1903/CS — из Kit.Core, вне рамок).
|
||
- `dotnet test MT.Check.Core.Dal.Tests` — 0 тестов, успешно (тела и тесты не генерированы — блокировка).
|
||
- DalTools `check` — **0 нарушений** (c-dal/c-tst).
|
||
|
||
## Методы → функции (проект, тела не реализованы)
|
||
|
||
| Метод | Функция | Спецификация тестов |
|
||
|---|---|---|
|
||
| ChkCheckRepository.Insert/Update/Delete/Select/Get | chk.chk_check_insert/update/delete/select/get | 1-docs/2-core/chk/repository_tests/ChkCheckRepository.md (13 тестов) |
|
||
| ChkTypeRepository.Select | chk.chk_type_select | ChkTypeRepository.md (2 теста) |
|
||
| ChkStatusRepository.Select | chk.chk_status_select | ChkStatusRepository.md (2 теста) |
|
||
|
||
## Возобновление (после доработки Kit.Helpers)
|
||
|
||
1. `dotnet run --project <DalTools> -- show-state` → продолжить с 3_code.
|
||
2. Наполнить тела методов (транспорт fluent, p_-параметры) и тесты 1:1
|
||
спецификациям; статусы «Репозиторий» → CODE; build/test/check; отчёт; DONE.
|
||
|
||
## Неопределённости / допущения
|
||
|
||
- Имя решения «MT.Check» — свободный выбор пользователя (папка содержит кириллицу).
|
||
- Kit.Helpers подключён ProjectReference на внешний репозиторий (NuGet-пакета нет).
|
||
- Имена сущностей в манифесте: ChkType/ChkStatus/ChkCheck (ToPascal от chk_*).
|
||
- psql-тесты функций не исполнялись (нет доступа к тестовой БД в этом прогоне).
|
||
- Задача «Проверка» БД-функций (db-tst) — исполнение на тестовой базе, отдельный шаг.
|