# App State - Функциональные требования

## 📋 Статус готовности

- ✅ **Машина состояний**: Полностью реализована
- ✅ **Провайдер**: Полностью реализован
- ✅ **Тесты**: Покрыты тестами
- ✅ **Основная логика**: Глобальное состояние приложения

## 📊 Покрытие тестами

- **Общее покрытие**: 57.55%
- **Компоненты**: 97%
- **Сервисы**: 84.25%
- **Хуки**: 100% (полностью покрыты)
- **Всего тестов**: 124

## 🎯 Основные функции

### ✅ Готово
- [x] AppSettingsMachine - машина состояний настроек (78% покрытие)
- [x] AppSettingsProvider - провайдер контекста (67% покрытие)
- [x] AppDirectoriesService - управление директориями (92% покрытие)
- [x] StoreService - сервис хранения данных (100% покрытие)
- [x] ProjectFileService - работа с файлами проектов (99% покрытие)
- [x] MissingFilesDialog - диалог восстановления файлов (97% покрытие)
- [x] Типизированные настройки приложения
- [x] Хуки для доступа к состоянию:
  - useAppSettings - базовый хук доступа
  - useCurrentProject - управление текущим проектом
  - useRecentProjects - недавние проекты
  - useFavorites - избранные элементы
  - useMediaFiles - медиафайлы
  - useMusicFiles - музыкальные файлы

### ⚠️ Архитектурные проблемы
- Смешение ответственностей в app-settings-machine
- Дублирование данных между настройками и проектами
- Плохая изоляция между доменами

### 📁 Структура модуля
```
app-state/
├── components/
│   └── missing-files-dialog.tsx    # Диалог восстановления файлов (97%)
├── hooks/
│   ├── use-app-settings.ts         # Базовый хук
│   ├── use-current-project.ts      # Текущий проект
│   ├── use-recent-projects.ts      # Недавние проекты
│   ├── use-favorites.ts            # Избранные
│   ├── use-media-files.ts          # Медиафайлы
│   └── use-music-files.ts          # Музыкальные файлы
├── services/
│   ├── app-settings-machine.ts     # Машина состояний (78%)
│   ├── app-settings-provider.tsx   # Провайдер контекста (67%)
│   ├── app-directories-service.ts  # Управление директориями (92%)
│   ├── project-file-service.ts     # Работа с файлами проектов (99%)
│   └── store-service.ts            # Хранилище (100%)
└── __tests__/
    ├── components/                 # Тесты компонентов
    ├── hooks/                      # Тесты хуков
    └── services/                   # Тесты сервисов
```

### ❌ Возможные улучшения
- [ ] Разделение машины состояний на домены
- [ ] Увеличение покрытия AppSettingsProvider (текущее 67%)
- [ ] Рефакторинг для устранения смешения ответственностей
- [ ] Синхронизация настроек между окнами
- [ ] Резервное копирование настроек
- [ ] Импорт/экспорт конфигурации

## 🔄 Интеграция с другими компонентами

### ✅ Реализовано
- [x] Глобальное состояние для всего приложения
- [x] Сохранение пользовательских предпочтений
- [x] Управление проектами (создание, открытие, сохранение)
- [x] Управление медиабиблиотекой
- [x] Система избранного

### ❌ Требует реализации
- [ ] Четкое разделение между настройками приложения и проекта
- [ ] Миграция медиафайлов в отдельный модуль
- [ ] Унификация системы избранного
