feat(#6): Implement full CRUD for Locations and Labels

This commit is contained in:
2025-09-02 17:03:05 +03:00
parent 8ebdc3a7b3
commit dd1a0c0c51
43 changed files with 1276 additions and 6786 deletions

View File

@@ -231,6 +231,21 @@
<description>Содержит поля: totalItems, totalValue, locationsCount, labelsCount.</description>
</NODE>
<NODE id="model_location_create" type="data_model" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/model/LocationCreate.kt">
<summary>Модель для создания нового местоположения.</summary>
<description>Содержит поля: name, color.</description>
</NODE>
<NODE id="model_location_update" type="data_model" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/model/LocationUpdate.kt">
<summary>Модель для обновления существующего местоположения.</summary>
<description>Содержит поля: name, color.</description>
</NODE>
<NODE id="model_label_update" type="data_model" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/model/LabelUpdate.kt">
<summary>Модель для обновления существующей метки.</summary>
<description>Содержит поля: name, color.</description>
</NODE>
<!-- Repository Interfaces -->
<NODE id="repo_interface" type="repository_interface" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/repository/ItemRepository.kt">
<summary>Интерфейс, определяющий контракт для операций с данными, связанными с товарами, метками и местоположениями.</summary>
@@ -246,6 +261,9 @@
<EDGE type="DEPENDS_ON" target_id="model_label_create"/>
<EDGE type="DEPENDS_ON" target_id="model_location"/>
<EDGE type="DEPENDS_ON" target_id="model_result"/>
<EDGE type="DEPENDS_ON" target_id="model_location_create"/>
<EDGE type="DEPENDS_ON" target_id="model_location_update"/>
<EDGE type="DEPENDS_ON" target_id="model_label_update"/>
</RELATIONS>
</NODE>
<NODE id="func_get_location_details" type="function" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/repository/ItemRepository.kt">
@@ -289,6 +307,12 @@
<EDGE type="DEPENDS_ON" target_id="repo_interface"/>
</RELATIONS>
</NODE>
<NODE id="uc_update_item" type="use_case" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/usecase/UpdateItemUseCase.kt">
<summary>Сценарий использования для обновления существующего товара.</summary>
<RELATIONS>
<EDGE type="DEPENDS_ON" target_id="repo_interface"/>
</RELATIONS>
</NODE>
<NODE id="uc_create_label" type="use_case" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/usecase/CreateLabelUseCase.kt">
<summary>Сценарий использования для создания новой метки.</summary>
<RELATIONS>
@@ -344,6 +368,41 @@
</RELATIONS>
</NODE>
<NODE id="uc_create_location" type="use_case" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/usecase/CreateLocationUseCase.kt">
<summary>Сценарий использования для создания нового местоположения.</summary>
<RELATIONS>
<EDGE type="DEPENDS_ON" target_id="repo_interface"/>
</RELATIONS>
</NODE>
<NODE id="uc_update_location" type="use_case" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/usecase/UpdateLocationUseCase.kt">
<summary>Сценарий использования для обновления существующего местоположения.</summary>
<RELATIONS>
<EDGE type="DEPENDS_ON" target_id="repo_interface"/>
</RELATIONS>
</NODE>
<NODE id="uc_delete_location" type="use_case" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/usecase/DeleteLocationUseCase.kt">
<summary>Сценарий использования для удаления местоположения.</summary>
<RELATIONS>
<EDGE type="DEPENDS_ON" target_id="repo_interface"/>
</RELATIONS>
</NODE>
<NODE id="uc_update_label" type="use_case" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/usecase/UpdateLabelUseCase.kt">
<summary>Сценарий использования для обновления существующей метки.</summary>
<RELATIONS>
<EDGE type="DEPENDS_ON" target_id="repo_interface"/>
</RELATIONS>
</NODE>
<NODE id="uc_delete_label" type="use_case" status="implemented" file_path="domain/src/main/java/com/homebox/lens/domain/usecase/DeleteLabelUseCase.kt">
<summary>Сценарий использования для удаления метки.</summary>
<RELATIONS>
<EDGE type="DEPENDS_ON" target_id="repo_interface"/>
</RELATIONS>
</NODE>
<!-- ================================================================================== -->
<!-- УЗЛЫ СЛОЯ DATA -->
<!-- ================================================================================== -->
@@ -444,7 +503,7 @@
<EDGE type="HAS_VIEWMODEL" target_id="vm_item_details"/>
</RELATIONS>
</NODE>
<NODE id="screen_item_edit" type="ui_screen" status="stub" file_path="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditScreen.kt">
<NODE id="screen_item_edit" type="ui_screen" status="implemented" file_path="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditScreen.kt">
<summary>Экран создания/редактирования товара</summary>
<description>Позволяет пользователям создавать новые товары или редактировать существующие.</description>
<RELATIONS>
@@ -499,7 +558,7 @@
<EDGE type="CALLS" target_id="uc_get_item_details"/>
</RELATIONS>
</NODE>
<NODE id="vm_item_edit" type="view_model" status="stub" file_path="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt">
<NODE id="vm_item_edit" type="view_model" status="implemented" file_path="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt">
<summary>ViewModel для экрана создания/редактирования товара.</summary>
<RELATIONS>
<EDGE type="CALLS" target_id="uc_create_item"/>