Files
homebox_lens/tasks/completed/current_work_order.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>