Item Edit screen

This commit is contained in:
2025-08-25 10:28:26 +03:00
parent a608766e06
commit 11078e5313
22 changed files with 1197 additions and 248 deletions

View File

@@ -0,0 +1,28 @@
<WORK_ORDER status="pending_qa">
<METRICS>
<syntactic_validity>1.0</syntactic_validity>
<intent_clarity_score>1.0</intent_clarity_score>
<specification_adherence_score>1.0</specification_adherence_score>
<semantic_markup_quality>1.0</semantic_markup_quality>
<estimated_complexity_score>3</estimated_complexity_score>
<confidence_score>1.0</confidence_score>
<assumptions_made></assumptions_made>
</METRICS>
<GOAL>
Реализовать `ItemEditViewModel` для управления состоянием экрана редактирования товара.
</GOAL>
<INTENT_SPECIFICATION>
1. Открыть файл `app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt`.
2. Внедрить в конструктор `CreateItemUseCase` и `UpdateItemUseCase`.
3. Определить `data class ItemEditUiState` для представления состояния экрана (редактируемый товар, флаги загрузки/ошибки).
4. Использовать `StateFlow` для управления `UiState`.
5. Реализовать функцию `loadItem(itemId: String)` для загрузки данных товара по ID через соответствующий UseCase.
6. Реализовать функцию `saveItem()` которая будет вызывать `CreateItemUseCase` или `UpdateItemUseCase` в зависимости от того, создается новый товар или редактируется существующий.
</INTENT_SPECIFICATION>
<ACCEPTANCE_CRITERIA>
- `ItemEditViewModel.kt` содержит `StateFlow` с `ItemEditUiState`.
- Зависимости `CreateItemUseCase` и `UpdateItemUseCase` корректно внедрены.
- Функции `loadItem` и `saveItem` реализованы и вызывают соответствующие use cases.
- ViewModel успешно компилируется.
</ACCEPTANCE_CRITERIA>
</WORK_ORDER>