diff --git a/History/step-1-db-migration-2026-07-14.md b/History/step-1-db-migration-2026-07-14.md new file mode 100644 index 0000000..b87512e --- /dev/null +++ b/History/step-1-db-migration-2026-07-14.md @@ -0,0 +1,25 @@ +# Step 1: Перенос db/ → app/db/ + +**Ветка:** `feature/flask-migration` (submodule + parent) +**Дата:** 2026-07-14 + +## Что делаем + +Копируем `deploy/db/*.py` → `app/db/`. Менять НИЧЕГО не надо — чистый CRUD. + +## Файлы + +- `deploy/db/connection.py` → `app/db/connection.py` — connection pool +- `deploy/db/documents.py` → `app/db/documents.py` — documents CRUD +- `deploy/db/contracts.py` → `app/db/contracts.py` — contracts CRUD +- `deploy/db/supplements.py` → `app/db/supplements.py` — supplements CRUD +- `deploy/db/spec_current.py` → `app/db/spec_current.py` — spec queries +- `deploy/db/spec_events.py` → `app/db/spec_events.py` — events CRUD +- `deploy/db/prompts.py` → `app/db/prompts.py` — prompts CRUD + +## Проверка + +```bash +cd contracts-flask +python3 -c "from app.db import documents; print('ok')" +``` diff --git a/History/step-2-services-migration-2026-07-14.md b/History/step-2-services-migration-2026-07-14.md new file mode 100644 index 0000000..84d4622 --- /dev/null +++ b/History/step-2-services-migration-2026-07-14.md @@ -0,0 +1,32 @@ +# Step 2: Перенос compare/ → app/services/ + +**Ветка:** `feature/flask-migration` +**Дата:** 2026-07-14 + +## Что делаем + +Копируем бизнес-логику из `deploy/compare/*.py` → `app/services/`. + +## Переносим (чистая логика, без HTTP) + +- `parse.py` — парсинг PDF/DOCX +- `classify.py` — LLM-классификация +- `grouping.py` — группировка документов +- `llm.py` — вызов LLM для сравнения +- `llm_client.py` — протокол + httpx + fake +- `metrics.py` — проверка арифметики + +## НЕ переносим (привязаны к HTTP, будут переписаны в blueprints) + +- `upload.py` — использует cgi.FieldStorage +- `unzip.py` — читает rfile.read() +- `process.py` — SSE через callback + +## Правки импортов + +Было → стало: +- `from db import documents` → `from app.db import documents` +- `from .parse import parse_file` → `from app.services.parse import parse_file` +- `from llm_prompt import ...` → `from app.llm_prompt import ...` +- `from .llm_client import ...` → `from app.services.llm_client import ...` +- `from .metrics import ...` → `from app.services.metrics import ...` diff --git a/History/step-3-8-blueprints-and-app-2026-07-14.md b/History/step-3-8-blueprints-and-app-2026-07-14.md new file mode 100644 index 0000000..bcfa11a --- /dev/null +++ b/History/step-3-8-blueprints-and-app-2026-07-14.md @@ -0,0 +1,17 @@ +# Step 3: config.py + все blueprints + новый app.py + +**Ветка:** `feature/flask-migration` +**Дата:** 2026-07-14 + +## Создаваемые файлы + +- `app/config.py` — настройки +- `app/routes/__init__.py` — register_routes() +- `app/routes/upload_bp.py` — /upload, /convert-doc, /unzip-upload +- `app/routes/pipeline_bp.py` — /process-v2 (SSE), /classify-batch +- `app/routes/api_bp.py` — /api/* (groups, documents, supplements, sync, cleanup, spec-current) +- `app/routes/prompts_bp.py` — /api/prompts/* +- `app/routes/health_bp.py` — /health +- `app/routes/pages_bp.py` — /, /architect +- `app/services/process.py` — адаптированный process.py (callback → generator) +- `app/app.py` — новый (замена старого, без VM-прокси) diff --git a/contracts-flask b/contracts-flask index 976e59b..8f68821 160000 --- a/contracts-flask +++ b/contracts-flask @@ -1 +1 @@ -Subproject commit 976e59b496d2879183c9a66f66d4cf84d309610e +Subproject commit 8f688215cc3688acae3e1ca29e451e6ec735411e