12
This commit is contained in:
@@ -16,9 +16,9 @@ data class LocationOutDto(
|
|||||||
@Json(name = "name")
|
@Json(name = "name")
|
||||||
val name: String,
|
val name: String,
|
||||||
@Json(name = "color")
|
@Json(name = "color")
|
||||||
val color: String,
|
val color: String?,
|
||||||
@Json(name = "isArchived")
|
@Json(name = "isArchived")
|
||||||
val isArchived: Boolean,
|
val isArchived: Boolean?,
|
||||||
@Json(name = "createdAt")
|
@Json(name = "createdAt")
|
||||||
val createdAt: String,
|
val createdAt: String,
|
||||||
@Json(name = "updatedAt")
|
@Json(name = "updatedAt")
|
||||||
@@ -35,8 +35,8 @@ fun LocationOutDto.toDomain(): LocationOut {
|
|||||||
return LocationOut(
|
return LocationOut(
|
||||||
id = this.id,
|
id = this.id,
|
||||||
name = this.name,
|
name = this.name,
|
||||||
color = this.color,
|
color = this.color ?: "#000000",
|
||||||
isArchived = this.isArchived,
|
isArchived = this.isArchived ?: false,
|
||||||
createdAt = this.createdAt,
|
createdAt = this.createdAt,
|
||||||
updatedAt = this.updatedAt
|
updatedAt = this.updatedAt
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ package com.homebox.lens.domain.model
|
|||||||
data class LocationOut(
|
data class LocationOut(
|
||||||
val id: String,
|
val id: String,
|
||||||
val name: String,
|
val name: String,
|
||||||
val color: String,
|
val color: String?,
|
||||||
val isArchived: Boolean,
|
val isArchived: Boolean?,
|
||||||
val createdAt: String,
|
val createdAt: String,
|
||||||
val updatedAt: String
|
val updatedAt: String
|
||||||
)
|
)
|
||||||
|
|||||||
97
tasks/work_order_inventory_screen.xml
Normal file
97
tasks/work_order_inventory_screen.xml
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<WorkOrder>
|
||||||
|
<Configuration>
|
||||||
|
<MaxConcurrentAgents>1</MaxConcurrentAgents>
|
||||||
|
<MaxIterations>25</MaxIterations>
|
||||||
|
<TaskChannel>
|
||||||
|
<Implementation>
|
||||||
|
<Plugin>filesystem</Plugin>
|
||||||
|
<Parameters>
|
||||||
|
<BasePath>tasks/temp</BasePath>
|
||||||
|
</Parameters>
|
||||||
|
</Implementation>
|
||||||
|
</TaskChannel>
|
||||||
|
<MetricsSink>
|
||||||
|
<Implementation>
|
||||||
|
<Plugin>xml_file</Plugin>
|
||||||
|
<Parameters>
|
||||||
|
<OutputPath>logs/metrics</OutputPath>
|
||||||
|
</Parameters>
|
||||||
|
</Implementation>
|
||||||
|
</MetricsSink>
|
||||||
|
<LogSink>
|
||||||
|
<Implementation>
|
||||||
|
<Plugin>xml_file</Plugin>
|
||||||
|
<Parameters>
|
||||||
|
<OutputPath>logs/main</OutputPath>
|
||||||
|
</Parameters>
|
||||||
|
</Implementation>
|
||||||
|
</LogSink>
|
||||||
|
</Configuration>
|
||||||
|
<Objective>
|
||||||
|
<HumanReadable>Создать полнофункциональный экран "Inventory", который будет отображать список предметов инвентаря. Экран должен использовать существующую архитектуру и компоненты.</HumanReadable>
|
||||||
|
</Objective>
|
||||||
|
<SystemContext>
|
||||||
|
<System>
|
||||||
|
<OperatingSystem>Linux</OperatingSystem>
|
||||||
|
<Shell>/usr/bin/zsh</Shell>
|
||||||
|
</System>
|
||||||
|
<Project>
|
||||||
|
<Name>Homebox Lens</Name>
|
||||||
|
<Framework>Android (Jetpack Compose)</Framework>
|
||||||
|
<Language>Kotlin</Language>
|
||||||
|
<BuildSystem>Gradle</BuildSystem>
|
||||||
|
<Architecture>MVVM, Clean Architecture</Architecture>
|
||||||
|
</Project>
|
||||||
|
</SystemContext>
|
||||||
|
<InitialContext>
|
||||||
|
<File>
|
||||||
|
<Path>domain/src/main/java/com/homebox/lens/domain/model/ItemSummary.kt</Path>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<Path>app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListScreen.kt</Path>
|
||||||
|
</File>
|
||||||
|
</InitialContext>
|
||||||
|
<AcceptanceCriteria>
|
||||||
|
<Criterion>
|
||||||
|
<Description>Создан новый Gradle-модуль `feature:inventory`.</Description>
|
||||||
|
</Criterion>
|
||||||
|
<Criterion>
|
||||||
|
<Description>В модуле `feature:inventory` реализован `InventoryScreen`, `InventoryViewModel` и `InventoryUiState`.</Description>
|
||||||
|
</Criterion>
|
||||||
|
<Criterion>
|
||||||
|
<Description>`InventoryViewModel` использует `SearchItemsUseCase` для получения списка предметов.</Description>
|
||||||
|
</Criterion>
|
||||||
|
<Criterion>
|
||||||
|
<Description>`InventoryScreen` отображает список предметов, используя `ItemSummary` в качестве модели представления для каждого элемента списка.</Description>
|
||||||
|
</Criterion>
|
||||||
|
<Criterion>
|
||||||
|
<Description>Новый экран интегрирован в навигацию приложения.</Description>
|
||||||
|
</Criterion>
|
||||||
|
<Criterion>
|
||||||
|
<Description>Весь новый код соответствует стайлгайду проекта и семантически корректен.</Description>
|
||||||
|
</Criterion>
|
||||||
|
</AcceptanceCriteria>
|
||||||
|
<Workflow>
|
||||||
|
<Step>
|
||||||
|
<Name>Создание модуля</Name>
|
||||||
|
<Description>Создать новый feature-модуль с именем `inventory`.</Description>
|
||||||
|
</Step>
|
||||||
|
<Step>
|
||||||
|
<Name>Реализация ViewModel</Name>
|
||||||
|
<Description>Создать `InventoryViewModel` который будет запрашивать данные из `SearchItemsUseCase` и управлять состоянием экрана `InventoryUiState`.</Description>
|
||||||
|
</Step>
|
||||||
|
<Step>
|
||||||
|
<Name>Реализация UI</Name>
|
||||||
|
<Description>Создать `InventoryScreen`, который будет отображать список `ItemSummary` из `InventoryUiState`. Для каждого элемента списка создать `ItemRow` composable.</Description>
|
||||||
|
</Step>
|
||||||
|
<Step>
|
||||||
|
<Name>Интеграция навигации</Name>
|
||||||
|
<Description>Добавить `InventoryScreen` в граф навигации приложения.</Description>
|
||||||
|
</Step>
|
||||||
|
<Step>
|
||||||
|
<Name>Рефакторинг</Name>
|
||||||
|
<Description>Удалить старый `InventoryListScreen` из `app` модуля, если он больше не нужен.</Description>
|
||||||
|
</Step>
|
||||||
|
</Workflow>
|
||||||
|
</WorkOrder>
|
||||||
Reference in New Issue
Block a user