From 9500d747b1fe6f764478cdb2159b27b0d270dd61 Mon Sep 17 00:00:00 2001 From: busya Date: Mon, 6 Oct 2025 08:11:43 +0300 Subject: [PATCH] 12 --- .../lens/data/api/dto/LocationOutDto.kt | 8 +- .../homebox/lens/domain/model/LocationOut.kt | 4 +- tasks/work_order_inventory_screen.xml | 97 +++++++++++++++++++ 3 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 tasks/work_order_inventory_screen.xml diff --git a/data/src/main/java/com/homebox/lens/data/api/dto/LocationOutDto.kt b/data/src/main/java/com/homebox/lens/data/api/dto/LocationOutDto.kt index fef83e2..330a35b 100644 --- a/data/src/main/java/com/homebox/lens/data/api/dto/LocationOutDto.kt +++ b/data/src/main/java/com/homebox/lens/data/api/dto/LocationOutDto.kt @@ -16,9 +16,9 @@ data class LocationOutDto( @Json(name = "name") val name: String, @Json(name = "color") - val color: String, + val color: String?, @Json(name = "isArchived") - val isArchived: Boolean, + val isArchived: Boolean?, @Json(name = "createdAt") val createdAt: String, @Json(name = "updatedAt") @@ -35,8 +35,8 @@ fun LocationOutDto.toDomain(): LocationOut { return LocationOut( id = this.id, name = this.name, - color = this.color, - isArchived = this.isArchived, + color = this.color ?: "#000000", + isArchived = this.isArchived ?: false, createdAt = this.createdAt, updatedAt = this.updatedAt ) diff --git a/domain/src/main/java/com/homebox/lens/domain/model/LocationOut.kt b/domain/src/main/java/com/homebox/lens/domain/model/LocationOut.kt index 302350e..c9e21c9 100644 --- a/domain/src/main/java/com/homebox/lens/domain/model/LocationOut.kt +++ b/domain/src/main/java/com/homebox/lens/domain/model/LocationOut.kt @@ -17,8 +17,8 @@ package com.homebox.lens.domain.model data class LocationOut( val id: String, val name: String, - val color: String, - val isArchived: Boolean, + val color: String?, + val isArchived: Boolean?, val createdAt: String, val updatedAt: String ) diff --git a/tasks/work_order_inventory_screen.xml b/tasks/work_order_inventory_screen.xml new file mode 100644 index 0000000..6e27d00 --- /dev/null +++ b/tasks/work_order_inventory_screen.xml @@ -0,0 +1,97 @@ + + + + 1 + 25 + + + filesystem + + tasks/temp + + + + + + xml_file + + logs/metrics + + + + + + xml_file + + logs/main + + + + + + Создать полнофункциональный экран "Inventory", который будет отображать список предметов инвентаря. Экран должен использовать существующую архитектуру и компоненты. + + + + Linux + /usr/bin/zsh + + + Homebox Lens + Android (Jetpack Compose) + Kotlin + Gradle + MVVM, Clean Architecture + + + + + domain/src/main/java/com/homebox/lens/domain/model/ItemSummary.kt + + + app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListScreen.kt + + + + + Создан новый Gradle-модуль `feature:inventory`. + + + В модуле `feature:inventory` реализован `InventoryScreen`, `InventoryViewModel` и `InventoryUiState`. + + + `InventoryViewModel` использует `SearchItemsUseCase` для получения списка предметов. + + + `InventoryScreen` отображает список предметов, используя `ItemSummary` в качестве модели представления для каждого элемента списка. + + + Новый экран интегрирован в навигацию приложения. + + + Весь новый код соответствует стайлгайду проекта и семантически корректен. + + + + + Создание модуля + Создать новый feature-модуль с именем `inventory`. + + + Реализация ViewModel + Создать `InventoryViewModel` который будет запрашивать данные из `SearchItemsUseCase` и управлять состоянием экрана `InventoryUiState`. + + + Реализация UI + Создать `InventoryScreen`, который будет отображать список `ItemSummary` из `InventoryUiState`. Для каждого элемента списка создать `ItemRow` composable. + + + Интеграция навигации + Добавить `InventoryScreen` в граф навигации приложения. + + + Рефакторинг + Удалить старый `InventoryListScreen` из `app` модуля, если он больше не нужен. + + + \ No newline at end of file