DevBoard — Notes
Сессия 2026-07-28: Реквизиты, договоры, файлы — полная реализация
## Что сделано 1. **Schema**: Добавлены поля Client.requisites (Json), Contract.subject/city/milestones/generatedDocUrl, новые модели Setting и Attachment 2. **Файловое хранилище**: lib/uploads.ts, API routes /api/files/upload и /api/files/[id], компонент FileUpload (use client) 3. **Реквизиты клиента**: Форма на странице /clients/[slug] с 15 полями, action updateClientRequisites 4. **Настройки исполнителя**: Страница /settings, action updateSetting, ссылка в Sidebar 5. **Claude API**: lib/claude.ts — extractRequisitesFromFile (PDF как document, изображения как image), action extractRequisites 6. **Генерация DOCX**: lib/docgen.ts, шаблон templates/contract-template.docx, action generateContractDoc, компонент MilestonesInput 7. **Docker**: Добавлен uploads volume, UPLOAD_DIR/ANTHROPIC_API_KEY env vars, git в runner stage, COPY templates ## Ключевые файлы - packages/db/prisma/schema.prisma — все модели - apps/web/src/lib/actions.ts — 5 новых server actions - apps/web/src/app/clients/[slug]/page.tsx — основная UI - apps/web/src/app/settings/page.tsx — настройки - apps/web/src/lib/uploads.ts, claude.ts, docgen.ts — утилиты - docker-compose.yml, apps/web/Dockerfile — инфра ## Известные особенности - ANTHROPIC_API_KEY: на сервере хардкод в docker-compose.yml, rsync перезаписывает — нужен sed после деплоя - Миграция применена через psql напрямую (runner stage без prisma schema) - Шаблон DOCX сгенерирован программно через PizZip - SSH sandbox: ssh -i ~/.ssh/mysandbox -p 2847 root@92.242.60.198, путь /opt/devboard/, порт 3003