Основной модуль приложения, содержит UI и точки входа в приложение.
Этот модуль зависит от data и domain; обеспечивает разделение UI от бизнес-логики через ViewModels и UseCases.
Главная и единственная Activity приложения, содержит NavHost.
Интегрирован с Hilt для DI; навигация через Compose Navigation.
Класс Application, используется для настройки внедрения зависимостей Hilt.
Модуль Hilt для зависимостей уровня приложения.
Определяет навигационный граф для всего приложения с использованием Jetpack Compose Navigation.
Определяет маршруты для всех экранов в приложении в виде запечатанного класса.
UI для экрана панели управления.
Использует Compose для declarative UI; интегрирован с ViewModel для данных.
ViewModel для экрана панели управления, обрабатывает бизнес-логику.
UI для экрана списка инвентаря.
ViewModel для экрана списка инвентаря.
UI для экрана сведений о товаре.
ViewModel для экрана сведений о товаре.
UI для экрана редактирования товара.
ViewModel для экрана редактирования товара.
UI для экрана списка меток.
ViewModel для экрана списка меток.
UI для экрана списка местоположений.
Использует модель LocationOutCount для отображения количества элементов в каждой локации.
ViewModel для экрана списка местоположений.
UI для экрана поиска.
ViewModel для экрана поиска.
UI для экрана настройки.
ViewModel для экрана настройки.
Состояние UI для экрана настройки.
Слой данных, отвечающий за источники данных (сеть, локальная БД) и реализации репозиториев.
Интегрирует Retrofit для API и Room для локального хранения; обеспечивает оффлайн-поддержку.
Интерфейс сервиса Retrofit для Homebox API.
Определение базы данных Room для локального кэширования.
Реализация ItemRepository, координирующая данные из API и локальной БД.
Модуль Hilt для предоставления зависимостей, связанных с сетью (Retrofit, OkHttp).
Модуль Hilt для предоставления зависимостей, связанных с базой данных (Room DB, DAO).
Модуль Hilt для привязки интерфейсов репозиториев к их реализациям.
Модуль Hilt для предоставления зависимостей, связанных с хранилищем (EncryptedSharedPreferences).
Реализация CredentialsRepository.
Реализация AuthRepository.
Доменный слой, содержит бизнес-логику, сценарии использования и интерфейсы репозиториев. Чистый модуль Kotlin.
Чистая бизнес-логика без зависимостей от Android; использует корутины для async.
Класс данных для хранения учетных данных пользователя.
Интерфейс для репозитория аутентификации.
Интерфейс для репозитория учетных данных.
Интерфейс, определяющий контракт для операций с данными, связанными с товарами.
Сценарий использования для входа пользователя.
Сценарий использования для создания нового товара.
Сценарий использования для удаления товара.
Сценарий использования для получения всех меток.
Сценарий использования для получения всех местоположений со счетчиками элементов.
Возвращает List, а не базовую модель Location.
Сценарий использования для получения сведений о конкретном товаре.
Сценарий использования для получения недавно добавленных товаров.
Сценарий использования для получения статистики по инвентарю.
Сценарий использования для поиска товаров.
Сценарий использования для синхронизации локального инвентаря с удаленным сервером.
Сценарий использования для обновления существующего товара.
Модель инвентарного товара.
Data class с полями для контрактов; используется в UseCases и Repo.
Модель метки.
Модель местоположения.
Модель статистики инвентаря.
Модуль для unit и integration тестов приложения.
Тесты основаны на контрактах из DbC; используют Kotest для assertions.
Unit-тесты для DashboardViewModel.
Проверяет постусловия GetStatisticsUseCase.
Тесты навигационного графа.
Модуль для unit-тестов доменного слоя.
Unit-тесты для GetStatisticsUseCase.
Включает тесты на edge cases и нарушения контрактов.
Тесты модели Item.