# Backend Architecture Improvements ## Цель Устранить выявленные в ходе аудита архитектурные проблемы бэкенда: консистентность ответов API, качество кода модулей, обработку ошибок, тестируемость. ## Требования 1. Унифицировать формат ответов API — единый envelope DTO, используемый всеми модулями. 2. Устранить inconsistency между shares и bonds модулями. 3. Ввести иерархию доменных исключений с корректной обработкой. 4. Улучшить health check (проверка зависимостей). 5. Убрать дублирование и лишние зависимости. 6. Сохранить обратную совместимость API (поля ответов не меняются, только структура). ## Ограничения - Не менять внешний API-контракт (формат `{ data, meta }` остаётся). - Не рефакторить то, что не указано в требованиях. - Каждое изменение идёт через TDD-цикл. ## Критерии приемки (Acceptance Criteria) - [ ] Все модули используют единый shared envelope DTO из `common/dto/` - [ ] `shares/shares.service.ts:getShare()` возвращает `ApiEnvelopePayload` как и `bonds/` - [ ] Screener кеширует полный набор данных - [ ] Создана иерархия доменных исключений - [ ] `HttpExceptionFilter` корректно обрабатывает доменные исключения - [ ] Health check проверяет Prisma, MOEX, T-Bank - [ ] `RequestLoggingMiddleware` подключён через DI - [ ] `securities/` не импортирует `CacheModule` напрямую - [ ] Все тесты проходят - [ ] `npm run build` успешен