72 lines
3.7 KiB
XML
72 lines
3.7 KiB
XML
<?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>
|