This commit is contained in:
2025-09-06 12:34:25 +03:00
parent c5ee179e71
commit 30ef449756
26 changed files with 860 additions and 207 deletions

View File

@@ -1,35 +1,71 @@
<WORK_ORDERS>
<WORK_ORDER id="1" title="Implement Inventory List Screen">
<INTENT_SPECIFICATION>
Implement the UI for the inventory list screen in `InventoryListScreen.kt` to display a list of items using Jetpack Compose.
Implement the `InventoryListViewModel.kt` to fetch a paginated list of items from the `ItemRepository` and expose it to the UI.
The screen should show a loading indicator while data is being fetched and handle empty or error states.
</INTENT_SPECIFICATION>
<TARGET_FILES>
<FILE>app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListScreen.kt</FILE>
<FILE>app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListViewModel.kt</FILE>
</TARGET_FILES>
</WORK_ORDER>
<WORK_ORDER id="2" title="Implement Item Details Screen">
<INTENT_SPECIFICATION>
Implement the UI for the item details screen in `ItemDetailsScreen.kt`. It should display all the information about a specific item.
Implement the `ItemDetailsViewModel.kt` to fetch the details of a single item from the `ItemRepository` using its ID.
The screen should handle cases where the item is not found.
</INTENT_SPECIFICATION>
<TARGET_FILES>
<FILE>app/src/main/java/com/homebox/lens/ui/screen/itemdetails/ItemDetailsScreen.kt</FILE>
<FILE>app/src/main/java/com/homebox/lens/ui/screen/itemdetails/ItemDetailsViewModel.kt</FILE>
</TARGET_FILES>
</WORK_ORDER>
<WORK_ORDER id="3" title="Implement Search Screen">
<INTENT_SPECIFICATION>
Implement the UI for the search screen in `SearchScreen.kt`. It should contain a search bar and a list to display search results.
Implement the `SearchViewModel.kt` to take a search query, call the `SearchItemsUseCase`, and expose the results to the UI.
The search should be triggered as the user types, with debouncing to avoid excessive API calls.
</INTENT_SPECIFICATION>
<TARGET_FILES>
<FILE>app/src/main/java/com/homebox/lens/ui/screen/search/SearchScreen.kt</FILE>
<FILE>app/src/main/java/com/homebox/lens/ui/screen/search/SearchViewModel.kt</FILE>
</TARGET_FILES>
</WORK_ORDER>
</WORK_ORDERS>
<?xml version="1.0" encoding="UTF-8"?>
<WORK_ORDER>
<METADATA>
<WORK_ORDER_ID>20250906_100000</WORK_ORDER_ID>
<TITLE>[ARCHITECT -> DEV] Implement Label Management Feature</TITLE>
<DESCRIPTION>
This work order is to implement the full lifecycle of label management,
including creating, viewing, editing, and deleting labels.
This involves creating a new screen for editing labels, a view model to handle the logic,
and integrating it with the existing label list screen.
</DESCRIPTION>
<STATUS>Completed</STATUS>
<ASSIGNEE>agent-developer</ASSIGNEE>
<LABELS>
<LABEL>type::development</LABEL>
<LABEL>feature::label-management</LABEL>
</LABELS>
</METADATA>
<TASKS>
<TASK id="task_1" name="Create LabelEditViewModel">
<DESCRIPTION>
Create a new ViewModel `LabelEditViewModel.kt` in `app/src/main/java/com/homebox/lens/ui/screen/labeledit/`.
This ViewModel should handle the business logic for creating and updating a label.
It should use `GetLabelDetailsUseCase`, `CreateLabelUseCase`, and `UpdateLabelUseCase`.
</DESCRIPTION>
<CHECKLIST>
<ITEM>Create `app/src/main/java/com/homebox/lens/ui/screen/labeledit/LabelEditViewModel.kt`</ITEM>
<ITEM>Inject `GetLabelDetailsUseCase`, `CreateLabelUseCase`, `UpdateLabelUseCase`.</ITEM>
<ITEM>Implement state management for the label editing screen.</ITEM>
<ITEM>Implement methods to create and update a label.</ITEM>
</CHECKLIST>
</TASK>
<TASK id="task_2" name="Create LabelEditScreen">
<DESCRIPTION>
Create a new Jetpack Compose screen `LabelEditScreen.kt` in `app/src/main/java/com/homebox/lens/ui/screen/labeledit/`.
This screen will be used for both creating a new label and editing an existing one.
The UI should be similar to the `LocationEditScreen`.
</DESCRIPTION>
<CHECKLIST>
<ITEM>Create `app/src/main/java/com/homebox/lens/ui/screen/labeledit/LabelEditScreen.kt`</ITEM>
<ITEM>Implement the UI for creating/editing a label (e.g., a text field for the name and a color picker).</ITEM>
<ITEM>Connect the screen to `LabelEditViewModel`.</ITEM>
</CHECKLIST>
</TASK>
<TASK id="task_3" name="Update Navigation">
<DESCRIPTION>
Update the navigation graph to include the new `LabelEditScreen`.
The `LabelsListScreen` should navigate to `LabelEditScreen` when the user wants to create or edit a label.
</DESCRIPTION>
<CHECKLIST>
<ITEM>Add a route for `LabelEditScreen` in `Screen.kt`.</ITEM>
<ITEM>Add the new screen to the `NavGraph.kt`.</ITEM>
<ITEM>Implement navigation from `LabelsListScreen` to `LabelEditScreen`.</ITEM>
</CHECKLIST>
</TASK>
<TASK id="task_4" name="Create GetLabelDetailsUseCase">
<DESCRIPTION>
Create a new UseCase `GetLabelDetailsUseCase.kt` in `domain/src/main/java/com/homebox/lens/domain/usecase/`.
This UseCase will be responsible for getting the details of a single label.
</DESCRIPTION>
<CHECKLIST>
<ITEM>Create `domain/src/main/java/com/homebox/lens/domain/usecase/GetLabelDetailsUseCase.kt`</ITEM>
<ITEM>Implement the logic to get label details from the `ItemRepository`.</ITEM>
</CHECKLIST>
</TASK>
</TASKS>
</WORK_ORDER>