diff --git a/pom.xml b/pom.xml
index 5aedce1..4f4b9d4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -116,6 +116,7 @@
org.springframework.boot
spring-boot-starter-webmvc-test
+
com.h2database
h2
diff --git a/src/main/java/com/solaria/persistence/controller/ServiceAuthController.java b/src/main/java/com/solaria/persistence/controller/auth/ServiceAuthController.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/controller/ServiceAuthController.java
rename to src/main/java/com/solaria/persistence/controller/auth/ServiceAuthController.java
index 6c5dcff..589ae37 100644
--- a/src/main/java/com/solaria/persistence/controller/ServiceAuthController.java
+++ b/src/main/java/com/solaria/persistence/controller/auth/ServiceAuthController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.auth;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
@@ -9,9 +9,9 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ServiceTokenMintRequestDTO;
-import com.solaria.persistence.dto.request.ServiceTokenRefreshRequestDTO;
-import com.solaria.persistence.dto.response.ServiceTokenResponseDTO;
+import com.solaria.persistence.dto.request.auth.ServiceTokenMintRequestDTO;
+import com.solaria.persistence.dto.request.auth.ServiceTokenRefreshRequestDTO;
+import com.solaria.persistence.dto.response.auth.ServiceTokenResponseDTO;
import com.solaria.persistence.exception.ServiceAuthException;
import com.solaria.persistence.security.service.ServiceTokenProperties;
import com.solaria.persistence.security.service.ServiceTokenProvider;
diff --git a/src/main/java/com/solaria/persistence/controller/InventoryController.java b/src/main/java/com/solaria/persistence/controller/catalog/InventoryController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/InventoryController.java
rename to src/main/java/com/solaria/persistence/controller/catalog/InventoryController.java
index cbd47e4..0748834 100644
--- a/src/main/java/com/solaria/persistence/controller/InventoryController.java
+++ b/src/main/java/com/solaria/persistence/controller/catalog/InventoryController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.catalog;
import java.net.URI;
import java.util.List;
@@ -14,11 +14,11 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.patch.UpdateQuantityDTO;
-import com.solaria.persistence.dto.request.InventoryRequestDTO;
-import com.solaria.persistence.dto.response.InventoryResponseDTO;
-import com.solaria.persistence.openapi.InventoryOpenApi;
-import com.solaria.persistence.service.InventoryService;
+import com.solaria.persistence.dto.patch.catalog.UpdateQuantityDTO;
+import com.solaria.persistence.dto.request.catalog.InventoryRequestDTO;
+import com.solaria.persistence.dto.response.catalog.InventoryResponseDTO;
+import com.solaria.persistence.openapi.catalog.InventoryOpenApi;
+import com.solaria.persistence.service.catalog.InventoryService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ModelController.java b/src/main/java/com/solaria/persistence/controller/catalog/ModelController.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/controller/ModelController.java
rename to src/main/java/com/solaria/persistence/controller/catalog/ModelController.java
index 1d7db12..2a04cc9 100644
--- a/src/main/java/com/solaria/persistence/controller/ModelController.java
+++ b/src/main/java/com/solaria/persistence/controller/catalog/ModelController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.catalog;
import java.net.URI;
import java.util.List;
@@ -14,11 +14,11 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.domain.enums.ModelStatus;
-import com.solaria.persistence.dto.request.ModelRequestDTO;
-import com.solaria.persistence.dto.response.ModelResponseDTO;
-import com.solaria.persistence.openapi.ModelOpenApi;
-import com.solaria.persistence.service.ModelService;
+import com.solaria.persistence.domain.enums.catalog.ModelStatus;
+import com.solaria.persistence.dto.request.catalog.ModelRequestDTO;
+import com.solaria.persistence.dto.response.catalog.ModelResponseDTO;
+import com.solaria.persistence.openapi.catalog.ModelOpenApi;
+import com.solaria.persistence.service.catalog.ModelService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ModelPhotoController.java b/src/main/java/com/solaria/persistence/controller/catalog/ModelPhotoController.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/controller/ModelPhotoController.java
rename to src/main/java/com/solaria/persistence/controller/catalog/ModelPhotoController.java
index c2a3bc2..442ed03 100644
--- a/src/main/java/com/solaria/persistence/controller/ModelPhotoController.java
+++ b/src/main/java/com/solaria/persistence/controller/catalog/ModelPhotoController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.catalog;
import java.net.URI;
import java.util.List;
@@ -15,9 +15,9 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.dto.response.ModelPhotoResponseDTO;
-import com.solaria.persistence.openapi.ModelPhotoOpenApi;
-import com.solaria.persistence.service.ModelPhotoService;
+import com.solaria.persistence.dto.response.catalog.ModelPhotoResponseDTO;
+import com.solaria.persistence.openapi.catalog.ModelPhotoOpenApi;
+import com.solaria.persistence.service.catalog.ModelPhotoService;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/OfferController.java b/src/main/java/com/solaria/persistence/controller/catalog/OfferController.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/controller/OfferController.java
rename to src/main/java/com/solaria/persistence/controller/catalog/OfferController.java
index ffe1b7e..9311dd6 100644
--- a/src/main/java/com/solaria/persistence/controller/OfferController.java
+++ b/src/main/java/com/solaria/persistence/controller/catalog/OfferController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.catalog;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.OfferRequestDTO;
-import com.solaria.persistence.dto.response.OfferResponseDTO;
-import com.solaria.persistence.openapi.OfferOpenApi;
-import com.solaria.persistence.service.OfferService;
+import com.solaria.persistence.dto.request.catalog.OfferRequestDTO;
+import com.solaria.persistence.dto.response.catalog.OfferResponseDTO;
+import com.solaria.persistence.openapi.catalog.OfferOpenApi;
+import com.solaria.persistence.service.catalog.OfferService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/SupplierController.java b/src/main/java/com/solaria/persistence/controller/catalog/SupplierController.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/controller/SupplierController.java
rename to src/main/java/com/solaria/persistence/controller/catalog/SupplierController.java
index e4a0eb2..f358c46 100644
--- a/src/main/java/com/solaria/persistence/controller/SupplierController.java
+++ b/src/main/java/com/solaria/persistence/controller/catalog/SupplierController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.catalog;
import java.net.URI;
import java.util.List;
@@ -12,12 +12,12 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.SupplierRequestDTO;
-import com.solaria.persistence.dto.request.SupplierSearchFilterDTO;
-import com.solaria.persistence.dto.response.SupplierResponseDTO;
-import com.solaria.persistence.dto.response.SupplierSearchResponseDTO;
-import com.solaria.persistence.openapi.SupplierOpenApi;
-import com.solaria.persistence.service.SupplierService;
+import com.solaria.persistence.dto.request.catalog.SupplierRequestDTO;
+import com.solaria.persistence.dto.request.catalog.SupplierSearchFilterDTO;
+import com.solaria.persistence.dto.response.catalog.SupplierResponseDTO;
+import com.solaria.persistence.dto.response.catalog.SupplierSearchResponseDTO;
+import com.solaria.persistence.openapi.catalog.SupplierOpenApi;
+import com.solaria.persistence.service.catalog.SupplierService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/InternalPingController.java b/src/main/java/com/solaria/persistence/controller/common/InternalPingController.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/controller/InternalPingController.java
rename to src/main/java/com/solaria/persistence/controller/common/InternalPingController.java
index 4601b58..15d6abd 100644
--- a/src/main/java/com/solaria/persistence/controller/InternalPingController.java
+++ b/src/main/java/com/solaria/persistence/controller/common/InternalPingController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.common;
import java.util.Map;
diff --git a/src/main/java/com/solaria/persistence/controller/BusinessContactController.java b/src/main/java/com/solaria/persistence/controller/company/BusinessContactController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/BusinessContactController.java
rename to src/main/java/com/solaria/persistence/controller/company/BusinessContactController.java
index e1da4fb..6aac7ef 100644
--- a/src/main/java/com/solaria/persistence/controller/BusinessContactController.java
+++ b/src/main/java/com/solaria/persistence/controller/company/BusinessContactController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.company;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.BusinessContactRequestDTO;
-import com.solaria.persistence.dto.response.BusinessContactResponseDTO;
-import com.solaria.persistence.openapi.BusinessContactOpenApi;
-import com.solaria.persistence.service.BusinessContactService;
+import com.solaria.persistence.dto.request.company.BusinessContactRequestDTO;
+import com.solaria.persistence.dto.response.company.BusinessContactResponseDTO;
+import com.solaria.persistence.openapi.company.BusinessContactOpenApi;
+import com.solaria.persistence.service.company.BusinessContactService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ChargeController.java b/src/main/java/com/solaria/persistence/controller/company/ChargeController.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/controller/ChargeController.java
rename to src/main/java/com/solaria/persistence/controller/company/ChargeController.java
index 9320672..8684651 100644
--- a/src/main/java/com/solaria/persistence/controller/ChargeController.java
+++ b/src/main/java/com/solaria/persistence/controller/company/ChargeController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.company;
import java.net.URI;
import java.time.LocalDate;
@@ -15,11 +15,11 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.domain.enums.PaymentMethod;
-import com.solaria.persistence.dto.request.ChargeRequestDTO;
-import com.solaria.persistence.dto.response.ChargeResponseDTO;
-import com.solaria.persistence.openapi.ChargeOpenApi;
-import com.solaria.persistence.service.ChargeService;
+import com.solaria.persistence.domain.enums.company.PaymentMethod;
+import com.solaria.persistence.dto.request.company.ChargeRequestDTO;
+import com.solaria.persistence.dto.response.company.ChargeResponseDTO;
+import com.solaria.persistence.openapi.company.ChargeOpenApi;
+import com.solaria.persistence.service.company.ChargeService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/CompanyController.java b/src/main/java/com/solaria/persistence/controller/company/CompanyController.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/controller/CompanyController.java
rename to src/main/java/com/solaria/persistence/controller/company/CompanyController.java
index c331017..56b92a8 100644
--- a/src/main/java/com/solaria/persistence/controller/CompanyController.java
+++ b/src/main/java/com/solaria/persistence/controller/company/CompanyController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.company;
import java.net.URI;
import java.util.List;
@@ -15,12 +15,12 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.patch.UpdateBusinessContactIdDTO;
-import com.solaria.persistence.dto.patch.UpdateCompanyAddressIdDTO;
-import com.solaria.persistence.dto.request.CompanyRequestDTO;
-import com.solaria.persistence.dto.response.CompanyResponseDTO;
-import com.solaria.persistence.openapi.CompanyOpenApi;
-import com.solaria.persistence.service.CompanyService;
+import com.solaria.persistence.dto.patch.company.UpdateBusinessContactIdDTO;
+import com.solaria.persistence.dto.patch.company.UpdateCompanyAddressIdDTO;
+import com.solaria.persistence.dto.request.company.CompanyRequestDTO;
+import com.solaria.persistence.dto.response.company.CompanyResponseDTO;
+import com.solaria.persistence.openapi.company.CompanyOpenApi;
+import com.solaria.persistence.service.company.CompanyService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/CompanyPhotoController.java b/src/main/java/com/solaria/persistence/controller/company/CompanyPhotoController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/CompanyPhotoController.java
rename to src/main/java/com/solaria/persistence/controller/company/CompanyPhotoController.java
index 44800f2..05d097f 100644
--- a/src/main/java/com/solaria/persistence/controller/CompanyPhotoController.java
+++ b/src/main/java/com/solaria/persistence/controller/company/CompanyPhotoController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.company;
import java.util.List;
import java.util.UUID;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.domain.enums.PhotoType;
-import com.solaria.persistence.dto.response.CompanyPhotoResponseDTO;
-import com.solaria.persistence.openapi.CompanyPhotoOpenApi;
-import com.solaria.persistence.service.CompanyPhotoService;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
+import com.solaria.persistence.dto.response.company.CompanyPhotoResponseDTO;
+import com.solaria.persistence.openapi.company.CompanyPhotoOpenApi;
+import com.solaria.persistence.service.company.CompanyPhotoService;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/CompanyPlansController.java b/src/main/java/com/solaria/persistence/controller/company/CompanyPlansController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/CompanyPlansController.java
rename to src/main/java/com/solaria/persistence/controller/company/CompanyPlansController.java
index 781a6a3..17219d9 100644
--- a/src/main/java/com/solaria/persistence/controller/CompanyPlansController.java
+++ b/src/main/java/com/solaria/persistence/controller/company/CompanyPlansController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.company;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.CompanyPlansRequestDTO;
-import com.solaria.persistence.dto.response.CompanyPlansResponseDTO;
-import com.solaria.persistence.openapi.CompanyPlansOpenApi;
-import com.solaria.persistence.service.CompanyPlansService;
+import com.solaria.persistence.dto.request.company.CompanyPlansRequestDTO;
+import com.solaria.persistence.dto.response.company.CompanyPlansResponseDTO;
+import com.solaria.persistence.openapi.company.CompanyPlansOpenApi;
+import com.solaria.persistence.service.company.CompanyPlansService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/CompanyPositionsController.java b/src/main/java/com/solaria/persistence/controller/company/CompanyPositionsController.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/controller/CompanyPositionsController.java
rename to src/main/java/com/solaria/persistence/controller/company/CompanyPositionsController.java
index 7525e68..676e624 100644
--- a/src/main/java/com/solaria/persistence/controller/CompanyPositionsController.java
+++ b/src/main/java/com/solaria/persistence/controller/company/CompanyPositionsController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.company;
import java.net.URI;
import java.util.List;
@@ -13,10 +13,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.CompanyPositionsRequestDTO;
-import com.solaria.persistence.dto.response.CompanyPositionsResponseDTO;
-import com.solaria.persistence.openapi.CompanyPositionsOpenApi;
-import com.solaria.persistence.service.CompanyPositionsService;
+import com.solaria.persistence.dto.request.company.CompanyPositionsRequestDTO;
+import com.solaria.persistence.dto.response.company.CompanyPositionsResponseDTO;
+import com.solaria.persistence.openapi.company.CompanyPositionsOpenApi;
+import com.solaria.persistence.service.company.CompanyPositionsService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/SubscriptionController.java b/src/main/java/com/solaria/persistence/controller/company/SubscriptionController.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/controller/SubscriptionController.java
rename to src/main/java/com/solaria/persistence/controller/company/SubscriptionController.java
index fa94ece..33d6572 100644
--- a/src/main/java/com/solaria/persistence/controller/SubscriptionController.java
+++ b/src/main/java/com/solaria/persistence/controller/company/SubscriptionController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.company;
import java.net.URI;
import java.util.List;
@@ -12,10 +12,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.SubscriptionRequestDTO;
-import com.solaria.persistence.dto.response.SubscriptionResponseDTO;
-import com.solaria.persistence.openapi.SubscriptionOpenApi;
-import com.solaria.persistence.service.SubscriptionService;
+import com.solaria.persistence.dto.request.company.SubscriptionRequestDTO;
+import com.solaria.persistence.dto.response.company.SubscriptionResponseDTO;
+import com.solaria.persistence.openapi.company.SubscriptionOpenApi;
+import com.solaria.persistence.service.company.SubscriptionService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/RequesterController.java b/src/main/java/com/solaria/persistence/controller/execution/RequesterController.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/controller/RequesterController.java
rename to src/main/java/com/solaria/persistence/controller/execution/RequesterController.java
index 59403cb..439ad7e 100644
--- a/src/main/java/com/solaria/persistence/controller/RequesterController.java
+++ b/src/main/java/com/solaria/persistence/controller/execution/RequesterController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.execution;
import java.net.URI;
import java.util.List;
@@ -13,10 +13,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.RequesterRequestDTO;
-import com.solaria.persistence.dto.response.RequesterResponseDTO;
-import com.solaria.persistence.openapi.RequesterOpenApi;
-import com.solaria.persistence.service.RequesterService;
+import com.solaria.persistence.dto.request.execution.RequesterRequestDTO;
+import com.solaria.persistence.dto.response.execution.RequesterResponseDTO;
+import com.solaria.persistence.openapi.execution.RequesterOpenApi;
+import com.solaria.persistence.service.execution.RequesterService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ServiceContractController.java b/src/main/java/com/solaria/persistence/controller/execution/ServiceContractController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/ServiceContractController.java
rename to src/main/java/com/solaria/persistence/controller/execution/ServiceContractController.java
index 9047364..3244190 100644
--- a/src/main/java/com/solaria/persistence/controller/ServiceContractController.java
+++ b/src/main/java/com/solaria/persistence/controller/execution/ServiceContractController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.execution;
import java.net.URI;
import java.util.UUID;
@@ -13,10 +13,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ServiceContractRequestDTO;
-import com.solaria.persistence.dto.response.ServiceContractResponseDTO;
-import com.solaria.persistence.openapi.ServiceContractOpenApi;
-import com.solaria.persistence.service.ServiceContractService;
+import com.solaria.persistence.dto.request.execution.ServiceContractRequestDTO;
+import com.solaria.persistence.dto.response.execution.ServiceContractResponseDTO;
+import com.solaria.persistence.openapi.execution.ServiceContractOpenApi;
+import com.solaria.persistence.service.execution.ServiceContractService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ServiceExecutorController.java b/src/main/java/com/solaria/persistence/controller/execution/ServiceExecutorController.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/controller/ServiceExecutorController.java
rename to src/main/java/com/solaria/persistence/controller/execution/ServiceExecutorController.java
index 849df07..ac574a3 100644
--- a/src/main/java/com/solaria/persistence/controller/ServiceExecutorController.java
+++ b/src/main/java/com/solaria/persistence/controller/execution/ServiceExecutorController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.execution;
import java.util.List;
import java.util.UUID;
@@ -13,11 +13,11 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.patch.UpdateFunctionDTO;
-import com.solaria.persistence.dto.request.ServiceExecutorRequestDTO;
-import com.solaria.persistence.dto.response.ServiceExecutorResponseDTO;
-import com.solaria.persistence.openapi.ServiceExecutorOpenApi;
-import com.solaria.persistence.service.ServiceExecutorService;
+import com.solaria.persistence.dto.patch.execution.UpdateFunctionDTO;
+import com.solaria.persistence.dto.request.execution.ServiceExecutorRequestDTO;
+import com.solaria.persistence.dto.response.execution.ServiceExecutorResponseDTO;
+import com.solaria.persistence.openapi.execution.ServiceExecutorOpenApi;
+import com.solaria.persistence.service.execution.ServiceExecutorService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/TechnicalProjectController.java b/src/main/java/com/solaria/persistence/controller/execution/TechnicalProjectController.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/controller/TechnicalProjectController.java
rename to src/main/java/com/solaria/persistence/controller/execution/TechnicalProjectController.java
index 66b44aa..82b0dbe 100644
--- a/src/main/java/com/solaria/persistence/controller/TechnicalProjectController.java
+++ b/src/main/java/com/solaria/persistence/controller/execution/TechnicalProjectController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.execution;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.TechnicalProjectRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalProjectResponseDTO;
-import com.solaria.persistence.openapi.TechnicalProjectOpenApi;
-import com.solaria.persistence.service.TechnicalProjectService;
+import com.solaria.persistence.dto.request.execution.TechnicalProjectRequestDTO;
+import com.solaria.persistence.dto.response.execution.TechnicalProjectResponseDTO;
+import com.solaria.persistence.openapi.execution.TechnicalProjectOpenApi;
+import com.solaria.persistence.service.execution.TechnicalProjectService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/TechnicalServiceController.java b/src/main/java/com/solaria/persistence/controller/execution/TechnicalServiceController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/TechnicalServiceController.java
rename to src/main/java/com/solaria/persistence/controller/execution/TechnicalServiceController.java
index bffaabe..02164fb 100644
--- a/src/main/java/com/solaria/persistence/controller/TechnicalServiceController.java
+++ b/src/main/java/com/solaria/persistence/controller/execution/TechnicalServiceController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.execution;
import java.net.URI;
import java.util.List;
@@ -13,13 +13,13 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.patch.ServiceAcceptanceDTO;
-import com.solaria.persistence.dto.patch.ServiceScheduleDTO;
-import com.solaria.persistence.dto.patch.UpdatePurposeDTO;
-import com.solaria.persistence.dto.request.TechnicalServiceRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalServiceResponseDTO;
-import com.solaria.persistence.openapi.TechnicalServiceOpenApi;
-import com.solaria.persistence.service.TechnicalServiceService;
+import com.solaria.persistence.dto.patch.execution.ServiceAcceptanceDTO;
+import com.solaria.persistence.dto.patch.execution.ServiceScheduleDTO;
+import com.solaria.persistence.dto.patch.execution.UpdatePurposeDTO;
+import com.solaria.persistence.dto.request.execution.TechnicalServiceRequestDTO;
+import com.solaria.persistence.dto.response.execution.TechnicalServiceResponseDTO;
+import com.solaria.persistence.openapi.execution.TechnicalServiceOpenApi;
+import com.solaria.persistence.service.execution.TechnicalServiceService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/InternalUserProvisioningController.java b/src/main/java/com/solaria/persistence/controller/identity/InternalUserProvisioningController.java
similarity index 79%
rename from src/main/java/com/solaria/persistence/controller/InternalUserProvisioningController.java
rename to src/main/java/com/solaria/persistence/controller/identity/InternalUserProvisioningController.java
index 574d647..c4453aa 100644
--- a/src/main/java/com/solaria/persistence/controller/InternalUserProvisioningController.java
+++ b/src/main/java/com/solaria/persistence/controller/identity/InternalUserProvisioningController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.identity;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
@@ -6,9 +6,9 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.InternalUserProvisionRequestDTO;
-import com.solaria.persistence.dto.response.InternalUserProvisionResponseDTO;
-import com.solaria.persistence.service.InternalUserProvisioningService;
+import com.solaria.persistence.dto.request.identity.InternalUserProvisionRequestDTO;
+import com.solaria.persistence.dto.response.identity.InternalUserProvisionResponseDTO;
+import com.solaria.persistence.service.identity.InternalUserProvisioningService;
import jakarta.validation.Valid;
diff --git a/src/main/java/com/solaria/persistence/controller/PermissionController.java b/src/main/java/com/solaria/persistence/controller/identity/PermissionController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/PermissionController.java
rename to src/main/java/com/solaria/persistence/controller/identity/PermissionController.java
index 1ad25ed..af43a99 100644
--- a/src/main/java/com/solaria/persistence/controller/PermissionController.java
+++ b/src/main/java/com/solaria/persistence/controller/identity/PermissionController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.identity;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.PermissionRequestDTO;
-import com.solaria.persistence.dto.response.PermissionResponseDTO;
-import com.solaria.persistence.openapi.PermissionOpenApi;
-import com.solaria.persistence.service.PermissionService;
+import com.solaria.persistence.dto.request.identity.PermissionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PermissionResponseDTO;
+import com.solaria.persistence.openapi.identity.PermissionOpenApi;
+import com.solaria.persistence.service.identity.PermissionService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/PersonController.java b/src/main/java/com/solaria/persistence/controller/identity/PersonController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/PersonController.java
rename to src/main/java/com/solaria/persistence/controller/identity/PersonController.java
index b530bb9..94611e4 100644
--- a/src/main/java/com/solaria/persistence/controller/PersonController.java
+++ b/src/main/java/com/solaria/persistence/controller/identity/PersonController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.identity;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.PersonRequestDTO;
-import com.solaria.persistence.dto.response.PersonResponseDTO;
-import com.solaria.persistence.openapi.PersonOpenApi;
-import com.solaria.persistence.service.PersonService;
+import com.solaria.persistence.dto.request.identity.PersonRequestDTO;
+import com.solaria.persistence.dto.response.identity.PersonResponseDTO;
+import com.solaria.persistence.openapi.identity.PersonOpenApi;
+import com.solaria.persistence.service.identity.PersonService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/PositionController.java b/src/main/java/com/solaria/persistence/controller/identity/PositionController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/PositionController.java
rename to src/main/java/com/solaria/persistence/controller/identity/PositionController.java
index 94bcdb3..404b87f 100644
--- a/src/main/java/com/solaria/persistence/controller/PositionController.java
+++ b/src/main/java/com/solaria/persistence/controller/identity/PositionController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.identity;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.PositionRequestDTO;
-import com.solaria.persistence.dto.response.PositionResponseDTO;
-import com.solaria.persistence.openapi.PositionOpenApi;
-import com.solaria.persistence.service.PositionService;
+import com.solaria.persistence.dto.request.identity.PositionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PositionResponseDTO;
+import com.solaria.persistence.openapi.identity.PositionOpenApi;
+import com.solaria.persistence.service.identity.PositionService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/PositionPermissionController.java b/src/main/java/com/solaria/persistence/controller/identity/PositionPermissionController.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/controller/PositionPermissionController.java
rename to src/main/java/com/solaria/persistence/controller/identity/PositionPermissionController.java
index 787ee1e..392a54f 100644
--- a/src/main/java/com/solaria/persistence/controller/PositionPermissionController.java
+++ b/src/main/java/com/solaria/persistence/controller/identity/PositionPermissionController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.identity;
import java.net.URI;
import java.util.List;
@@ -13,10 +13,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.PositionPermissionRequestDTO;
-import com.solaria.persistence.dto.response.PositionPermissionResponseDTO;
-import com.solaria.persistence.openapi.PositionPermissionOpenApi;
-import com.solaria.persistence.service.PositionPermissionService;
+import com.solaria.persistence.dto.request.identity.PositionPermissionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PositionPermissionResponseDTO;
+import com.solaria.persistence.openapi.identity.PositionPermissionOpenApi;
+import com.solaria.persistence.service.identity.PositionPermissionService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/UserCompanyController.java b/src/main/java/com/solaria/persistence/controller/identity/UserCompanyController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/UserCompanyController.java
rename to src/main/java/com/solaria/persistence/controller/identity/UserCompanyController.java
index 30e6779..a0b7c18 100644
--- a/src/main/java/com/solaria/persistence/controller/UserCompanyController.java
+++ b/src/main/java/com/solaria/persistence/controller/identity/UserCompanyController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.identity;
import java.net.URI;
import java.util.List;
@@ -14,11 +14,11 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.patch.UpdatePositionDTO;
-import com.solaria.persistence.dto.request.UserCompanyRequestDTO;
-import com.solaria.persistence.dto.response.UserCompanyResponseDTO;
-import com.solaria.persistence.openapi.UserCompanyOpenApi;
-import com.solaria.persistence.service.UserCompanyService;
+import com.solaria.persistence.dto.patch.identity.UpdatePositionDTO;
+import com.solaria.persistence.dto.request.identity.UserCompanyRequestDTO;
+import com.solaria.persistence.dto.response.identity.UserCompanyResponseDTO;
+import com.solaria.persistence.openapi.identity.UserCompanyOpenApi;
+import com.solaria.persistence.service.identity.UserCompanyService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/UserController.java b/src/main/java/com/solaria/persistence/controller/identity/UserController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/UserController.java
rename to src/main/java/com/solaria/persistence/controller/identity/UserController.java
index a4723aa..3abfee7 100644
--- a/src/main/java/com/solaria/persistence/controller/UserController.java
+++ b/src/main/java/com/solaria/persistence/controller/identity/UserController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.identity;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.UserRequestDTO;
-import com.solaria.persistence.dto.response.UserResponseDTO;
-import com.solaria.persistence.openapi.UserOpenApi;
-import com.solaria.persistence.service.UserService;
+import com.solaria.persistence.dto.request.identity.UserRequestDTO;
+import com.solaria.persistence.dto.response.identity.UserResponseDTO;
+import com.solaria.persistence.openapi.identity.UserOpenApi;
+import com.solaria.persistence.service.identity.UserService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/UserPhotoController.java b/src/main/java/com/solaria/persistence/controller/identity/UserPhotoController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/UserPhotoController.java
rename to src/main/java/com/solaria/persistence/controller/identity/UserPhotoController.java
index ddbc14a..63dca16 100644
--- a/src/main/java/com/solaria/persistence/controller/UserPhotoController.java
+++ b/src/main/java/com/solaria/persistence/controller/identity/UserPhotoController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.identity;
import java.util.List;
import java.util.UUID;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.domain.enums.PhotoType;
-import com.solaria.persistence.dto.response.UserPhotoResponseDTO;
-import com.solaria.persistence.openapi.UserPhotoOpenApi;
-import com.solaria.persistence.service.UserPhotoService;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
+import com.solaria.persistence.dto.response.identity.UserPhotoResponseDTO;
+import com.solaria.persistence.openapi.identity.UserPhotoOpenApi;
+import com.solaria.persistence.service.identity.UserPhotoService;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/CertificationController.java b/src/main/java/com/solaria/persistence/controller/professional/CertificationController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/CertificationController.java
rename to src/main/java/com/solaria/persistence/controller/professional/CertificationController.java
index 4ec653e..d8a7682 100644
--- a/src/main/java/com/solaria/persistence/controller/CertificationController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/CertificationController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.CertificationRequestDTO;
-import com.solaria.persistence.dto.response.CertificationResponseDTO;
-import com.solaria.persistence.openapi.CertificationOpenApi;
-import com.solaria.persistence.service.CertificationService;
+import com.solaria.persistence.dto.request.professional.CertificationRequestDTO;
+import com.solaria.persistence.dto.response.professional.CertificationResponseDTO;
+import com.solaria.persistence.openapi.professional.CertificationOpenApi;
+import com.solaria.persistence.service.professional.CertificationService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/CertificationRecordController.java b/src/main/java/com/solaria/persistence/controller/professional/CertificationRecordController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/CertificationRecordController.java
rename to src/main/java/com/solaria/persistence/controller/professional/CertificationRecordController.java
index 6f2d1ac..d33834a 100644
--- a/src/main/java/com/solaria/persistence/controller/CertificationRecordController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/CertificationRecordController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.CertificationRecordRequestDTO;
-import com.solaria.persistence.dto.response.CertificationRecordResponseDTO;
-import com.solaria.persistence.openapi.CertificationRecordOpenApi;
-import com.solaria.persistence.service.CertificationRecordService;
+import com.solaria.persistence.dto.request.professional.CertificationRecordRequestDTO;
+import com.solaria.persistence.dto.response.professional.CertificationRecordResponseDTO;
+import com.solaria.persistence.openapi.professional.CertificationRecordOpenApi;
+import com.solaria.persistence.service.professional.CertificationRecordService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ProfessionController.java b/src/main/java/com/solaria/persistence/controller/professional/ProfessionController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/ProfessionController.java
rename to src/main/java/com/solaria/persistence/controller/professional/ProfessionController.java
index 42bcb11..e4b7cea 100644
--- a/src/main/java/com/solaria/persistence/controller/ProfessionController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/ProfessionController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ProfessionRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionResponseDTO;
-import com.solaria.persistence.openapi.ProfessionOpenApi;
-import com.solaria.persistence.service.ProfessionService;
+import com.solaria.persistence.dto.request.professional.ProfessionRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionResponseDTO;
+import com.solaria.persistence.openapi.professional.ProfessionOpenApi;
+import com.solaria.persistence.service.professional.ProfessionService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ProfessionalRegistrationController.java b/src/main/java/com/solaria/persistence/controller/professional/ProfessionalRegistrationController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/ProfessionalRegistrationController.java
rename to src/main/java/com/solaria/persistence/controller/professional/ProfessionalRegistrationController.java
index d0b6017..b605317 100644
--- a/src/main/java/com/solaria/persistence/controller/ProfessionalRegistrationController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/ProfessionalRegistrationController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ProfessionalRegistrationRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionalRegistrationResponseDTO;
-import com.solaria.persistence.openapi.ProfessionalRegistrationOpenApi;
-import com.solaria.persistence.service.ProfessionalRegistrationService;
+import com.solaria.persistence.dto.request.professional.ProfessionalRegistrationRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionalRegistrationResponseDTO;
+import com.solaria.persistence.openapi.professional.ProfessionalRegistrationOpenApi;
+import com.solaria.persistence.service.professional.ProfessionalRegistrationService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ProfessionalReviewController.java b/src/main/java/com/solaria/persistence/controller/professional/ProfessionalReviewController.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/controller/ProfessionalReviewController.java
rename to src/main/java/com/solaria/persistence/controller/professional/ProfessionalReviewController.java
index 7db52f1..0bed03b 100644
--- a/src/main/java/com/solaria/persistence/controller/ProfessionalReviewController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/ProfessionalReviewController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -13,10 +13,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ProfessionalReviewRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionalReviewResponseDTO;
-import com.solaria.persistence.openapi.ProfessionalReviewOpenApi;
-import com.solaria.persistence.service.ProfessionalReviewService;
+import com.solaria.persistence.dto.request.professional.ProfessionalReviewRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionalReviewResponseDTO;
+import com.solaria.persistence.openapi.professional.ProfessionalReviewOpenApi;
+import com.solaria.persistence.service.professional.ProfessionalReviewService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ShiftController.java b/src/main/java/com/solaria/persistence/controller/professional/ShiftController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/ShiftController.java
rename to src/main/java/com/solaria/persistence/controller/professional/ShiftController.java
index e90d09d..0671fd0 100644
--- a/src/main/java/com/solaria/persistence/controller/ShiftController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/ShiftController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ShiftRequestDTO;
-import com.solaria.persistence.dto.response.ShiftResponseDTO;
-import com.solaria.persistence.openapi.ShiftOpenApi;
-import com.solaria.persistence.service.ShiftService;
+import com.solaria.persistence.dto.request.professional.ShiftRequestDTO;
+import com.solaria.persistence.dto.response.professional.ShiftResponseDTO;
+import com.solaria.persistence.openapi.professional.ShiftOpenApi;
+import com.solaria.persistence.service.professional.ShiftService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/TechnicalCourseController.java b/src/main/java/com/solaria/persistence/controller/professional/TechnicalCourseController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/TechnicalCourseController.java
rename to src/main/java/com/solaria/persistence/controller/professional/TechnicalCourseController.java
index 04b13dd..a9172f1 100644
--- a/src/main/java/com/solaria/persistence/controller/TechnicalCourseController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/TechnicalCourseController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.TechnicalCourseRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalCourseResponseDTO;
-import com.solaria.persistence.openapi.TechnicalCourseOpenApi;
-import com.solaria.persistence.service.TechnicalCourseService;
+import com.solaria.persistence.dto.request.professional.TechnicalCourseRequestDTO;
+import com.solaria.persistence.dto.response.professional.TechnicalCourseResponseDTO;
+import com.solaria.persistence.openapi.professional.TechnicalCourseOpenApi;
+import com.solaria.persistence.service.professional.TechnicalCourseService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/TechnicianAffiliationController.java b/src/main/java/com/solaria/persistence/controller/professional/TechnicianAffiliationController.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/controller/TechnicianAffiliationController.java
rename to src/main/java/com/solaria/persistence/controller/professional/TechnicianAffiliationController.java
index dc91ce1..89d7e99 100644
--- a/src/main/java/com/solaria/persistence/controller/TechnicianAffiliationController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/TechnicianAffiliationController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -13,18 +13,18 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.patch.UpdateActiveDTO;
-import com.solaria.persistence.dto.patch.UpdateTypeDTO;
-import com.solaria.persistence.dto.request.TechnicianAffiliationRequestDTO;
-import com.solaria.persistence.dto.response.TechnicianAffiliationResponseDTO;
-import com.solaria.persistence.openapi.TechnicianAffiliationOpenApi;
-import com.solaria.persistence.service.TechnicianAffiliationService;
+import com.solaria.persistence.dto.patch.professional.UpdateActiveDTO;
+import com.solaria.persistence.dto.patch.professional.UpdateTypeDTO;
+import com.solaria.persistence.dto.request.professional.TechnicianAffiliationRequestDTO;
+import com.solaria.persistence.dto.response.professional.TechnicianAffiliationResponseDTO;
+import com.solaria.persistence.openapi.professional.TechnicianAffiliationOpenApi;
+import com.solaria.persistence.service.professional.TechnicianAffiliationService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
/**
- * controller REST (borda pura) para {@link com.solaria.persistence.domain.entity.TechnicianAffiliation}
+ * controller REST (borda pura) para {@link com.solaria.persistence.domain.entity.professional.TechnicianAffiliation}
* (RN-14). Delega para {@link TechnicianAffiliationService}.
*/
@RestController
diff --git a/src/main/java/com/solaria/persistence/controller/TechnicianController.java b/src/main/java/com/solaria/persistence/controller/professional/TechnicianController.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/controller/TechnicianController.java
rename to src/main/java/com/solaria/persistence/controller/professional/TechnicianController.java
index 6738bda..6410268 100644
--- a/src/main/java/com/solaria/persistence/controller/TechnicianController.java
+++ b/src/main/java/com/solaria/persistence/controller/professional/TechnicianController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.professional;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.TechnicianRequestDTO;
-import com.solaria.persistence.dto.response.TechnicianResponseDTO;
-import com.solaria.persistence.openapi.TechnicianOpenApi;
-import com.solaria.persistence.service.TechnicianService;
+import com.solaria.persistence.dto.request.professional.TechnicianRequestDTO;
+import com.solaria.persistence.dto.response.professional.TechnicianResponseDTO;
+import com.solaria.persistence.openapi.professional.TechnicianOpenApi;
+import com.solaria.persistence.service.professional.TechnicianService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ProposalController.java b/src/main/java/com/solaria/persistence/controller/proposal/ProposalController.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/controller/ProposalController.java
rename to src/main/java/com/solaria/persistence/controller/proposal/ProposalController.java
index 63099c7..e2f90b9 100644
--- a/src/main/java/com/solaria/persistence/controller/ProposalController.java
+++ b/src/main/java/com/solaria/persistence/controller/proposal/ProposalController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.proposal;
import java.net.URI;
import java.util.List;
@@ -13,11 +13,11 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.patch.UpdateNotesDTO;
-import com.solaria.persistence.dto.request.ProposalRequestDTO;
-import com.solaria.persistence.dto.response.ProposalResponseDTO;
-import com.solaria.persistence.openapi.ProposalOpenApi;
-import com.solaria.persistence.service.ProposalService;
+import com.solaria.persistence.dto.patch.proposal.UpdateNotesDTO;
+import com.solaria.persistence.dto.request.proposal.ProposalRequestDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalResponseDTO;
+import com.solaria.persistence.openapi.proposal.ProposalOpenApi;
+import com.solaria.persistence.service.proposal.ProposalService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ProposalItemController.java b/src/main/java/com/solaria/persistence/controller/proposal/ProposalItemController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/ProposalItemController.java
rename to src/main/java/com/solaria/persistence/controller/proposal/ProposalItemController.java
index 9066711..7c77645 100644
--- a/src/main/java/com/solaria/persistence/controller/ProposalItemController.java
+++ b/src/main/java/com/solaria/persistence/controller/proposal/ProposalItemController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.proposal;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ProposalItemRequestDTO;
-import com.solaria.persistence.dto.response.ProposalItemResponseDTO;
-import com.solaria.persistence.openapi.ProposalItemOpenApi;
-import com.solaria.persistence.service.ProposalItemService;
+import com.solaria.persistence.dto.request.proposal.ProposalItemRequestDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalItemResponseDTO;
+import com.solaria.persistence.openapi.proposal.ProposalItemOpenApi;
+import com.solaria.persistence.service.proposal.ProposalItemService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ProposalUnitController.java b/src/main/java/com/solaria/persistence/controller/proposal/ProposalUnitController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/ProposalUnitController.java
rename to src/main/java/com/solaria/persistence/controller/proposal/ProposalUnitController.java
index 69e94f8..c6f2a47 100644
--- a/src/main/java/com/solaria/persistence/controller/ProposalUnitController.java
+++ b/src/main/java/com/solaria/persistence/controller/proposal/ProposalUnitController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.proposal;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ProposalUnitRequestDTO;
-import com.solaria.persistence.dto.response.ProposalUnitResponseDTO;
-import com.solaria.persistence.openapi.ProposalUnitOpenApi;
-import com.solaria.persistence.service.ProposalUnitService;
+import com.solaria.persistence.dto.request.proposal.ProposalUnitRequestDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalUnitResponseDTO;
+import com.solaria.persistence.openapi.proposal.ProposalUnitOpenApi;
+import com.solaria.persistence.service.proposal.ProposalUnitService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/AddressController.java b/src/main/java/com/solaria/persistence/controller/shared/AddressController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/AddressController.java
rename to src/main/java/com/solaria/persistence/controller/shared/AddressController.java
index 41021d6..dea1e83 100644
--- a/src/main/java/com/solaria/persistence/controller/AddressController.java
+++ b/src/main/java/com/solaria/persistence/controller/shared/AddressController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.shared;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.AddressRequestDTO;
-import com.solaria.persistence.dto.response.AddressResponseDTO;
-import com.solaria.persistence.openapi.AddressOpenApi;
-import com.solaria.persistence.service.AddressService;
+import com.solaria.persistence.dto.request.shared.AddressRequestDTO;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
+import com.solaria.persistence.openapi.shared.AddressOpenApi;
+import com.solaria.persistence.service.shared.AddressService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/ContactController.java b/src/main/java/com/solaria/persistence/controller/shared/ContactController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/ContactController.java
rename to src/main/java/com/solaria/persistence/controller/shared/ContactController.java
index fc70a35..80e0f10 100644
--- a/src/main/java/com/solaria/persistence/controller/ContactController.java
+++ b/src/main/java/com/solaria/persistence/controller/shared/ContactController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.shared;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.ContactRequestDTO;
-import com.solaria.persistence.dto.response.ContactResponseDTO;
-import com.solaria.persistence.openapi.ContactOpenApi;
-import com.solaria.persistence.service.ContactService;
+import com.solaria.persistence.dto.request.shared.ContactRequestDTO;
+import com.solaria.persistence.dto.response.shared.ContactResponseDTO;
+import com.solaria.persistence.openapi.shared.ContactOpenApi;
+import com.solaria.persistence.service.shared.ContactService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/FluxLogController.java b/src/main/java/com/solaria/persistence/controller/shared/FluxLogController.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/controller/FluxLogController.java
rename to src/main/java/com/solaria/persistence/controller/shared/FluxLogController.java
index 292536e..3e570ce 100644
--- a/src/main/java/com/solaria/persistence/controller/FluxLogController.java
+++ b/src/main/java/com/solaria/persistence/controller/shared/FluxLogController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.shared;
import java.net.URI;
import java.util.List;
@@ -12,10 +12,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.FluxLogRequestDTO;
-import com.solaria.persistence.dto.response.FluxLogResponseDTO;
-import com.solaria.persistence.openapi.FluxLogOpenApi;
-import com.solaria.persistence.service.FluxLogService;
+import com.solaria.persistence.dto.request.shared.FluxLogRequestDTO;
+import com.solaria.persistence.dto.response.shared.FluxLogResponseDTO;
+import com.solaria.persistence.openapi.shared.FluxLogOpenApi;
+import com.solaria.persistence.service.shared.FluxLogService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/GeolocalizationController.java b/src/main/java/com/solaria/persistence/controller/shared/GeolocalizationController.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/controller/GeolocalizationController.java
rename to src/main/java/com/solaria/persistence/controller/shared/GeolocalizationController.java
index d5a11ee..4bce2e0 100644
--- a/src/main/java/com/solaria/persistence/controller/GeolocalizationController.java
+++ b/src/main/java/com/solaria/persistence/controller/shared/GeolocalizationController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.shared;
import java.net.URI;
import java.util.List;
@@ -14,10 +14,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.GeolocalizationRequestDTO;
-import com.solaria.persistence.dto.response.GeolocalizationResponseDTO;
-import com.solaria.persistence.openapi.GeolocalizationOpenApi;
-import com.solaria.persistence.service.GeolocalizationService;
+import com.solaria.persistence.dto.request.shared.GeolocalizationRequestDTO;
+import com.solaria.persistence.dto.response.shared.GeolocalizationResponseDTO;
+import com.solaria.persistence.openapi.shared.GeolocalizationOpenApi;
+import com.solaria.persistence.service.shared.GeolocalizationService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/EnergyBillController.java b/src/main/java/com/solaria/persistence/controller/unit/EnergyBillController.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/controller/EnergyBillController.java
rename to src/main/java/com/solaria/persistence/controller/unit/EnergyBillController.java
index 3415e7e..f7723ca 100644
--- a/src/main/java/com/solaria/persistence/controller/EnergyBillController.java
+++ b/src/main/java/com/solaria/persistence/controller/unit/EnergyBillController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.unit;
import java.net.URI;
import java.util.List;
@@ -17,10 +17,10 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.dto.request.EnergyBillRequestDTO;
-import com.solaria.persistence.dto.response.EnergyBillResponseDTO;
-import com.solaria.persistence.openapi.EnergyBillOpenApi;
-import com.solaria.persistence.service.EnergyBillService;
+import com.solaria.persistence.dto.request.unit.EnergyBillRequestDTO;
+import com.solaria.persistence.dto.response.unit.EnergyBillResponseDTO;
+import com.solaria.persistence.openapi.unit.EnergyBillOpenApi;
+import com.solaria.persistence.service.unit.EnergyBillService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/LocalUnitController.java b/src/main/java/com/solaria/persistence/controller/unit/LocalUnitController.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/controller/LocalUnitController.java
rename to src/main/java/com/solaria/persistence/controller/unit/LocalUnitController.java
index 26ff459..b9abe1f 100644
--- a/src/main/java/com/solaria/persistence/controller/LocalUnitController.java
+++ b/src/main/java/com/solaria/persistence/controller/unit/LocalUnitController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.unit;
import java.net.URI;
import java.util.List;
@@ -15,11 +15,11 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.patch.UpdateLocalUnitAddressIdDTO;
-import com.solaria.persistence.dto.request.LocalUnitRequestDTO;
-import com.solaria.persistence.dto.response.LocalUnitResponseDTO;
-import com.solaria.persistence.openapi.LocalUnitOpenApi;
-import com.solaria.persistence.service.LocalUnitService;
+import com.solaria.persistence.dto.patch.unit.UpdateLocalUnitAddressIdDTO;
+import com.solaria.persistence.dto.request.unit.LocalUnitRequestDTO;
+import com.solaria.persistence.dto.response.unit.LocalUnitResponseDTO;
+import com.solaria.persistence.openapi.unit.LocalUnitOpenApi;
+import com.solaria.persistence.service.unit.LocalUnitService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/LocalUnitPhotoController.java b/src/main/java/com/solaria/persistence/controller/unit/LocalUnitPhotoController.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/controller/LocalUnitPhotoController.java
rename to src/main/java/com/solaria/persistence/controller/unit/LocalUnitPhotoController.java
index 89e85e8..e449218 100644
--- a/src/main/java/com/solaria/persistence/controller/LocalUnitPhotoController.java
+++ b/src/main/java/com/solaria/persistence/controller/unit/LocalUnitPhotoController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.unit;
import java.net.URI;
import java.util.List;
@@ -15,9 +15,9 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.dto.response.LocalUnitPhotoResponseDTO;
-import com.solaria.persistence.openapi.LocalUnitPhotoOpenApi;
-import com.solaria.persistence.service.LocalUnitPhotoService;
+import com.solaria.persistence.dto.response.unit.LocalUnitPhotoResponseDTO;
+import com.solaria.persistence.openapi.unit.LocalUnitPhotoOpenApi;
+import com.solaria.persistence.service.unit.LocalUnitPhotoService;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/controller/UnitSpecificationsController.java b/src/main/java/com/solaria/persistence/controller/unit/UnitSpecificationsController.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/controller/UnitSpecificationsController.java
rename to src/main/java/com/solaria/persistence/controller/unit/UnitSpecificationsController.java
index 19db40e..f47d85f 100644
--- a/src/main/java/com/solaria/persistence/controller/UnitSpecificationsController.java
+++ b/src/main/java/com/solaria/persistence/controller/unit/UnitSpecificationsController.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.controller;
+package com.solaria.persistence.controller.unit;
import java.net.URI;
import java.util.List;
@@ -12,10 +12,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.solaria.persistence.dto.request.UnitSpecificationsRequestDTO;
-import com.solaria.persistence.dto.response.UnitSpecificationsResponseDTO;
-import com.solaria.persistence.openapi.UnitSpecificationsOpenApi;
-import com.solaria.persistence.service.UnitSpecificationsService;
+import com.solaria.persistence.dto.request.unit.UnitSpecificationsRequestDTO;
+import com.solaria.persistence.dto.response.unit.UnitSpecificationsResponseDTO;
+import com.solaria.persistence.openapi.unit.UnitSpecificationsOpenApi;
+import com.solaria.persistence.service.unit.UnitSpecificationsService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Inventory.java b/src/main/java/com/solaria/persistence/domain/entity/catalog/Inventory.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/domain/entity/Inventory.java
rename to src/main/java/com/solaria/persistence/domain/entity/catalog/Inventory.java
index 30361f6..67bf6b9 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Inventory.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/catalog/Inventory.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.catalog;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Model.java b/src/main/java/com/solaria/persistence/domain/entity/catalog/Model.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/domain/entity/Model.java
rename to src/main/java/com/solaria/persistence/domain/entity/catalog/Model.java
index 020a6fc..eb3231d 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Model.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/catalog/Model.java
@@ -1,7 +1,7 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.catalog;
-import com.solaria.persistence.domain.enums.ModelStatus;
-import com.solaria.persistence.domain.enums.PanelType;
+import com.solaria.persistence.domain.enums.catalog.ModelStatus;
+import com.solaria.persistence.domain.enums.catalog.PanelType;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/ModelPhoto.java b/src/main/java/com/solaria/persistence/domain/entity/catalog/ModelPhoto.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/domain/entity/ModelPhoto.java
rename to src/main/java/com/solaria/persistence/domain/entity/catalog/ModelPhoto.java
index d65ae07..91f7179 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/ModelPhoto.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/catalog/ModelPhoto.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.catalog;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Offer.java b/src/main/java/com/solaria/persistence/domain/entity/catalog/Offer.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/domain/entity/Offer.java
rename to src/main/java/com/solaria/persistence/domain/entity/catalog/Offer.java
index ca8fcdf..f6c1cb3 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Offer.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/catalog/Offer.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.catalog;
-import com.solaria.persistence.domain.enums.TranslationStatus;
+import com.solaria.persistence.domain.enums.catalog.TranslationStatus;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.ColumnDefault;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/OfferTranslation.java b/src/main/java/com/solaria/persistence/domain/entity/catalog/OfferTranslation.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/domain/entity/OfferTranslation.java
rename to src/main/java/com/solaria/persistence/domain/entity/catalog/OfferTranslation.java
index 0ddcf2e..e42dfb5 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/OfferTranslation.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/catalog/OfferTranslation.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.catalog;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Supplier.java b/src/main/java/com/solaria/persistence/domain/entity/catalog/Supplier.java
similarity index 76%
rename from src/main/java/com/solaria/persistence/domain/entity/Supplier.java
rename to src/main/java/com/solaria/persistence/domain/entity/catalog/Supplier.java
index 734d1f3..608c215 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Supplier.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/catalog/Supplier.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.catalog;
-import com.solaria.persistence.domain.enums.SupplierStatus;
+import com.solaria.persistence.domain.enums.catalog.SupplierStatus;
import jakarta.persistence.*;
import lombok.*;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.company.Company;
@Entity
diff --git a/src/main/java/com/solaria/persistence/domain/entity/BusinessContact.java b/src/main/java/com/solaria/persistence/domain/entity/company/BusinessContact.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/domain/entity/BusinessContact.java
rename to src/main/java/com/solaria/persistence/domain/entity/company/BusinessContact.java
index 8ff1bf4..9b30397 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/BusinessContact.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/company/BusinessContact.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.company;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Charge.java b/src/main/java/com/solaria/persistence/domain/entity/company/Charge.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/domain/entity/Charge.java
rename to src/main/java/com/solaria/persistence/domain/entity/company/Charge.java
index dd23474..01e594b 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Charge.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/company/Charge.java
@@ -1,7 +1,7 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.company;
-import com.solaria.persistence.domain.enums.BillingStatus;
-import com.solaria.persistence.domain.enums.PaymentMethod;
+import com.solaria.persistence.domain.enums.company.BillingStatus;
+import com.solaria.persistence.domain.enums.company.PaymentMethod;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Company.java b/src/main/java/com/solaria/persistence/domain/entity/company/Company.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/domain/entity/Company.java
rename to src/main/java/com/solaria/persistence/domain/entity/company/Company.java
index f7477d7..f717c8b 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Company.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/company/Company.java
@@ -1,11 +1,12 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.company;
-import com.solaria.persistence.domain.enums.CompanyStatus;
+import com.solaria.persistence.domain.enums.company.CompanyStatus;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.ColumnDefault;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.shared.Address;
@Entity
@Table(name = "company")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/CompanyPhoto.java b/src/main/java/com/solaria/persistence/domain/entity/company/CompanyPhoto.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/domain/entity/CompanyPhoto.java
rename to src/main/java/com/solaria/persistence/domain/entity/company/CompanyPhoto.java
index 25e4a56..0bbd4e8 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/CompanyPhoto.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/company/CompanyPhoto.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.company;
-import com.solaria.persistence.domain.enums.PhotoType;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/CompanyPlans.java b/src/main/java/com/solaria/persistence/domain/entity/company/CompanyPlans.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/domain/entity/CompanyPlans.java
rename to src/main/java/com/solaria/persistence/domain/entity/company/CompanyPlans.java
index 1992bfe..270e51b 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/CompanyPlans.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/company/CompanyPlans.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.company;
-import com.solaria.persistence.domain.enums.PlanCycle;
+import com.solaria.persistence.domain.enums.company.PlanCycle;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/CompanyPositions.java b/src/main/java/com/solaria/persistence/domain/entity/company/CompanyPositions.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/domain/entity/CompanyPositions.java
rename to src/main/java/com/solaria/persistence/domain/entity/company/CompanyPositions.java
index 06ab1ee..bc0f4b1 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/CompanyPositions.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/company/CompanyPositions.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.company;
import java.util.UUID;
@@ -14,6 +14,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import com.solaria.persistence.domain.entity.identity.Position;
@Entity
@Table(name = "company_positions")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Subscription.java b/src/main/java/com/solaria/persistence/domain/entity/company/Subscription.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/domain/entity/Subscription.java
rename to src/main/java/com/solaria/persistence/domain/entity/company/Subscription.java
index b5bca67..752ee4b 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Subscription.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/company/Subscription.java
@@ -1,11 +1,12 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.company;
-import com.solaria.persistence.domain.enums.SubscriptionStatus;
+import com.solaria.persistence.domain.enums.company.SubscriptionStatus;
import jakarta.persistence.*;
import lombok.*;
import java.time.OffsetDateTime;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.catalog.Supplier;
@Entity
@Table(name = "subscription")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Requester.java b/src/main/java/com/solaria/persistence/domain/entity/execution/Requester.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/domain/entity/Requester.java
rename to src/main/java/com/solaria/persistence/domain/entity/execution/Requester.java
index 41ae771..1c8a182 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Requester.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/execution/Requester.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.execution;
import jakarta.persistence.*;
import lombok.*;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.company.Company;
@Entity
diff --git a/src/main/java/com/solaria/persistence/domain/entity/ServiceContract.java b/src/main/java/com/solaria/persistence/domain/entity/execution/ServiceContract.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/domain/entity/ServiceContract.java
rename to src/main/java/com/solaria/persistence/domain/entity/execution/ServiceContract.java
index 82cbd28..0c056d1 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/ServiceContract.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/execution/ServiceContract.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.execution;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/ServiceExecutor.java b/src/main/java/com/solaria/persistence/domain/entity/execution/ServiceExecutor.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/domain/entity/ServiceExecutor.java
rename to src/main/java/com/solaria/persistence/domain/entity/execution/ServiceExecutor.java
index 1a1e0e3..a452fec 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/ServiceExecutor.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/execution/ServiceExecutor.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.execution;
import java.util.UUID;
@@ -15,6 +15,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import com.solaria.persistence.domain.entity.professional.TechnicianAffiliation;
@Entity
@Table(name = "service_executor")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/TechnicalProject.java b/src/main/java/com/solaria/persistence/domain/entity/execution/TechnicalProject.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/domain/entity/TechnicalProject.java
rename to src/main/java/com/solaria/persistence/domain/entity/execution/TechnicalProject.java
index c433900..24dd291 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/TechnicalProject.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/execution/TechnicalProject.java
@@ -1,12 +1,13 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.execution;
-import com.solaria.persistence.domain.enums.ServiceStatus;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
import jakarta.persistence.*;
import lombok.*;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
@Entity
diff --git a/src/main/java/com/solaria/persistence/domain/entity/TechnicalService.java b/src/main/java/com/solaria/persistence/domain/entity/execution/TechnicalService.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/domain/entity/TechnicalService.java
rename to src/main/java/com/solaria/persistence/domain/entity/execution/TechnicalService.java
index 056dc6d..42d791a 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/TechnicalService.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/execution/TechnicalService.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.execution;
-import com.solaria.persistence.domain.enums.ServiceStatus;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Permission.java b/src/main/java/com/solaria/persistence/domain/entity/identity/Permission.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/domain/entity/Permission.java
rename to src/main/java/com/solaria/persistence/domain/entity/identity/Permission.java
index 5a753d5..6d78045 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Permission.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/identity/Permission.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.identity;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Person.java b/src/main/java/com/solaria/persistence/domain/entity/identity/Person.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/domain/entity/Person.java
rename to src/main/java/com/solaria/persistence/domain/entity/identity/Person.java
index 08782d1..8c96c7f 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Person.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/identity/Person.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.identity;
import jakarta.persistence.*;
import lombok.*;
import java.time.LocalDate;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.shared.Contact;
@Entity
@Table(name = "person")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Position.java b/src/main/java/com/solaria/persistence/domain/entity/identity/Position.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/domain/entity/Position.java
rename to src/main/java/com/solaria/persistence/domain/entity/identity/Position.java
index 2c27de6..5f5dc69 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Position.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/identity/Position.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/PositionPermission.java b/src/main/java/com/solaria/persistence/domain/entity/identity/PositionPermission.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/domain/entity/PositionPermission.java
rename to src/main/java/com/solaria/persistence/domain/entity/identity/PositionPermission.java
index 46d961f..2e66400 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/PositionPermission.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/identity/PositionPermission.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/User.java b/src/main/java/com/solaria/persistence/domain/entity/identity/User.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/domain/entity/User.java
rename to src/main/java/com/solaria/persistence/domain/entity/identity/User.java
index 3d716b5..79d2d0c 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/User.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/identity/User.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.identity;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/UserCompany.java b/src/main/java/com/solaria/persistence/domain/entity/identity/UserCompany.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/domain/entity/UserCompany.java
rename to src/main/java/com/solaria/persistence/domain/entity/identity/UserCompany.java
index 510362e..1d3beb7 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/UserCompany.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/identity/UserCompany.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.identity;
import java.util.UUID;
@@ -14,6 +14,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import com.solaria.persistence.domain.entity.company.Company;
@Entity
@Table(name = "user_company")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/UserPhoto.java b/src/main/java/com/solaria/persistence/domain/entity/identity/UserPhoto.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/domain/entity/UserPhoto.java
rename to src/main/java/com/solaria/persistence/domain/entity/identity/UserPhoto.java
index 4e775e5..31e2e3b 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/UserPhoto.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/identity/UserPhoto.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.identity;
-import com.solaria.persistence.domain.enums.PhotoType;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Certification.java b/src/main/java/com/solaria/persistence/domain/entity/professional/Certification.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/domain/entity/Certification.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/Certification.java
index e5e0c44..5a2a9a6 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Certification.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/Certification.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/CertificationRecord.java b/src/main/java/com/solaria/persistence/domain/entity/professional/CertificationRecord.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/domain/entity/CertificationRecord.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/CertificationRecord.java
index 28c2c7f..4894a32 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/CertificationRecord.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/CertificationRecord.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Profession.java b/src/main/java/com/solaria/persistence/domain/entity/professional/Profession.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/domain/entity/Profession.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/Profession.java
index b144554..68bc4b0 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Profession.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/Profession.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/ProfessionalRegistration.java b/src/main/java/com/solaria/persistence/domain/entity/professional/ProfessionalRegistration.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/domain/entity/ProfessionalRegistration.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/ProfessionalRegistration.java
index ca19c50..dc81d09 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/ProfessionalRegistration.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/ProfessionalRegistration.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/ProfessionalReview.java b/src/main/java/com/solaria/persistence/domain/entity/professional/ProfessionalReview.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/domain/entity/ProfessionalReview.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/ProfessionalReview.java
index 192d23e..f4d1b67 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/ProfessionalReview.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/ProfessionalReview.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
import jakarta.persistence.*;
import lombok.*;
@@ -6,6 +6,8 @@
import java.math.BigDecimal;
import java.time.OffsetDateTime;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.domain.entity.execution.TechnicalService;
@Entity
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Shift.java b/src/main/java/com/solaria/persistence/domain/entity/professional/Shift.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/domain/entity/Shift.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/Shift.java
index 9f932e3..62bb876 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Shift.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/Shift.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
-import com.solaria.persistence.domain.enums.DayWeek;
+import com.solaria.persistence.domain.enums.professional.DayWeek;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/TechnicalCourse.java b/src/main/java/com/solaria/persistence/domain/entity/professional/TechnicalCourse.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/domain/entity/TechnicalCourse.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/TechnicalCourse.java
index 79b87ef..3fb19fa 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/TechnicalCourse.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/TechnicalCourse.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
import jakarta.persistence.*;
import lombok.*;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.company.Company;
@Entity
@Table(name = "technical_course")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Technician.java b/src/main/java/com/solaria/persistence/domain/entity/professional/Technician.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/domain/entity/Technician.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/Technician.java
index 954c837..149114d 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Technician.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/Technician.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
import jakarta.persistence.*;
import lombok.*;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.identity.Person;
@Entity
@Table(name = "technician")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/TechnicianAffiliation.java b/src/main/java/com/solaria/persistence/domain/entity/professional/TechnicianAffiliation.java
similarity index 78%
rename from src/main/java/com/solaria/persistence/domain/entity/TechnicianAffiliation.java
rename to src/main/java/com/solaria/persistence/domain/entity/professional/TechnicianAffiliation.java
index d715b9e..f8f60dd 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/TechnicianAffiliation.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/professional/TechnicianAffiliation.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.professional;
-import com.solaria.persistence.domain.enums.TechnicalAffiliationType;
+import com.solaria.persistence.domain.enums.professional.TechnicalAffiliationType;
import jakarta.persistence.*;
import lombok.*;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.company.Company;
@Entity
@Table(name = "technician_affiliation")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Proposal.java b/src/main/java/com/solaria/persistence/domain/entity/proposal/Proposal.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/domain/entity/Proposal.java
rename to src/main/java/com/solaria/persistence/domain/entity/proposal/Proposal.java
index 2c4b587..c167391 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Proposal.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/proposal/Proposal.java
@@ -1,12 +1,13 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.proposal;
-import com.solaria.persistence.domain.enums.ProposalStatus;
+import com.solaria.persistence.domain.enums.proposal.ProposalStatus;
import jakarta.persistence.*;
import lombok.*;
import java.math.BigDecimal;
import java.time.OffsetDateTime;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.execution.Requester;
@Entity
diff --git a/src/main/java/com/solaria/persistence/domain/entity/ProposalItem.java b/src/main/java/com/solaria/persistence/domain/entity/proposal/ProposalItem.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/domain/entity/ProposalItem.java
rename to src/main/java/com/solaria/persistence/domain/entity/proposal/ProposalItem.java
index ea992cf..fcea831 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/ProposalItem.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/proposal/ProposalItem.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.proposal;
import jakarta.persistence.*;
import lombok.*;
import java.math.BigDecimal;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.catalog.Offer;
@Entity
@Table(name = "proposal_item")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/ProposalUnit.java b/src/main/java/com/solaria/persistence/domain/entity/proposal/ProposalUnit.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/domain/entity/ProposalUnit.java
rename to src/main/java/com/solaria/persistence/domain/entity/proposal/ProposalUnit.java
index ec6c33b..3d7e8d8 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/ProposalUnit.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/proposal/ProposalUnit.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.proposal;
import jakarta.persistence.*;
import lombok.*;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
@Entity
@Table(name = "proposal_unit")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Address.java b/src/main/java/com/solaria/persistence/domain/entity/shared/Address.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/domain/entity/Address.java
rename to src/main/java/com/solaria/persistence/domain/entity/shared/Address.java
index 6f99176..b273e62 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Address.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/shared/Address.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.shared;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Contact.java b/src/main/java/com/solaria/persistence/domain/entity/shared/Contact.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/domain/entity/Contact.java
rename to src/main/java/com/solaria/persistence/domain/entity/shared/Contact.java
index 7376f03..47b7424 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Contact.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/shared/Contact.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.shared;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/FluxLog.java b/src/main/java/com/solaria/persistence/domain/entity/shared/FluxLog.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/domain/entity/FluxLog.java
rename to src/main/java/com/solaria/persistence/domain/entity/shared/FluxLog.java
index d7e7f51..7a77edc 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/FluxLog.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/shared/FluxLog.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.shared;
import jakarta.persistence.*;
import lombok.*;
import java.time.OffsetDateTime;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.identity.User;
@Entity
@Table(name = "flux_log")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/Geolocalization.java b/src/main/java/com/solaria/persistence/domain/entity/shared/Geolocalization.java
similarity index 95%
rename from src/main/java/com/solaria/persistence/domain/entity/Geolocalization.java
rename to src/main/java/com/solaria/persistence/domain/entity/shared/Geolocalization.java
index ded9a0b..18cfdb9 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/Geolocalization.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/shared/Geolocalization.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.shared;
import java.math.BigDecimal;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/EnergyBill.java b/src/main/java/com/solaria/persistence/domain/entity/unit/EnergyBill.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/domain/entity/EnergyBill.java
rename to src/main/java/com/solaria/persistence/domain/entity/unit/EnergyBill.java
index 7a135eb..9592438 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/EnergyBill.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/unit/EnergyBill.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.unit;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/LocalUnit.java b/src/main/java/com/solaria/persistence/domain/entity/unit/LocalUnit.java
similarity index 74%
rename from src/main/java/com/solaria/persistence/domain/entity/LocalUnit.java
rename to src/main/java/com/solaria/persistence/domain/entity/unit/LocalUnit.java
index 05ff1d3..acbfb49 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/LocalUnit.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/unit/LocalUnit.java
@@ -1,10 +1,12 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.unit;
-import com.solaria.persistence.domain.enums.LocationType;
+import com.solaria.persistence.domain.enums.unit.LocationType;
import jakarta.persistence.*;
import lombok.*;
import java.util.UUID;
+import com.solaria.persistence.domain.entity.execution.Requester;
+import com.solaria.persistence.domain.entity.shared.Address;
@Entity
@Table(name = "local_unit")
diff --git a/src/main/java/com/solaria/persistence/domain/entity/LocalUnitPhoto.java b/src/main/java/com/solaria/persistence/domain/entity/unit/LocalUnitPhoto.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/domain/entity/LocalUnitPhoto.java
rename to src/main/java/com/solaria/persistence/domain/entity/unit/LocalUnitPhoto.java
index 6c5f446..31a0114 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/LocalUnitPhoto.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/unit/LocalUnitPhoto.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.unit;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/entity/UnitSpecifications.java b/src/main/java/com/solaria/persistence/domain/entity/unit/UnitSpecifications.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/domain/entity/UnitSpecifications.java
rename to src/main/java/com/solaria/persistence/domain/entity/unit/UnitSpecifications.java
index 4a66107..d17de4f 100644
--- a/src/main/java/com/solaria/persistence/domain/entity/UnitSpecifications.java
+++ b/src/main/java/com/solaria/persistence/domain/entity/unit/UnitSpecifications.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.entity;
+package com.solaria.persistence.domain.entity.unit;
import jakarta.persistence.*;
import lombok.*;
diff --git a/src/main/java/com/solaria/persistence/domain/enums/PhotoType.java b/src/main/java/com/solaria/persistence/domain/enums/PhotoType.java
deleted file mode 100644
index 3452b92..0000000
--- a/src/main/java/com/solaria/persistence/domain/enums/PhotoType.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.solaria.persistence.domain.enums;
-
-public enum PhotoType {
- PROFILE,
- BANNER
-}
diff --git a/src/main/java/com/solaria/persistence/domain/enums/ModelStatus.java b/src/main/java/com/solaria/persistence/domain/enums/catalog/ModelStatus.java
similarity index 58%
rename from src/main/java/com/solaria/persistence/domain/enums/ModelStatus.java
rename to src/main/java/com/solaria/persistence/domain/enums/catalog/ModelStatus.java
index 383855c..29c03b4 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/ModelStatus.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/catalog/ModelStatus.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.catalog;
public enum ModelStatus {
APPROVED,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/PanelType.java b/src/main/java/com/solaria/persistence/domain/enums/catalog/PanelType.java
similarity index 60%
rename from src/main/java/com/solaria/persistence/domain/enums/PanelType.java
rename to src/main/java/com/solaria/persistence/domain/enums/catalog/PanelType.java
index 1c456f7..4de954c 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/PanelType.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/catalog/PanelType.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.catalog;
public enum PanelType {
MONOCRYSTALLINE,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/SupplierStatus.java b/src/main/java/com/solaria/persistence/domain/enums/catalog/SupplierStatus.java
similarity index 58%
rename from src/main/java/com/solaria/persistence/domain/enums/SupplierStatus.java
rename to src/main/java/com/solaria/persistence/domain/enums/catalog/SupplierStatus.java
index 4fdc9d9..f5cef20 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/SupplierStatus.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/catalog/SupplierStatus.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.catalog;
public enum SupplierStatus {
ACTIVE,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/TranslationStatus.java b/src/main/java/com/solaria/persistence/domain/enums/catalog/TranslationStatus.java
similarity index 57%
rename from src/main/java/com/solaria/persistence/domain/enums/TranslationStatus.java
rename to src/main/java/com/solaria/persistence/domain/enums/catalog/TranslationStatus.java
index 260d940..6f0ce68 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/TranslationStatus.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/catalog/TranslationStatus.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.catalog;
public enum TranslationStatus {
PENDING,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/BillingStatus.java b/src/main/java/com/solaria/persistence/domain/enums/company/BillingStatus.java
similarity index 60%
rename from src/main/java/com/solaria/persistence/domain/enums/BillingStatus.java
rename to src/main/java/com/solaria/persistence/domain/enums/company/BillingStatus.java
index 99fd8d4..faea138 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/BillingStatus.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/company/BillingStatus.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.company;
public enum BillingStatus {
PENDING,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/CompanyStatus.java b/src/main/java/com/solaria/persistence/domain/enums/company/CompanyStatus.java
similarity index 59%
rename from src/main/java/com/solaria/persistence/domain/enums/CompanyStatus.java
rename to src/main/java/com/solaria/persistence/domain/enums/company/CompanyStatus.java
index 4d0a85f..c7e2a48 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/CompanyStatus.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/company/CompanyStatus.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.company;
public enum CompanyStatus {
diff --git a/src/main/java/com/solaria/persistence/domain/enums/PaymentMethod.java b/src/main/java/com/solaria/persistence/domain/enums/company/PaymentMethod.java
similarity index 60%
rename from src/main/java/com/solaria/persistence/domain/enums/PaymentMethod.java
rename to src/main/java/com/solaria/persistence/domain/enums/company/PaymentMethod.java
index 8155968..35c7d3d 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/PaymentMethod.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/company/PaymentMethod.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.company;
public enum PaymentMethod {
PIX,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/PlanCycle.java b/src/main/java/com/solaria/persistence/domain/enums/company/PlanCycle.java
similarity index 55%
rename from src/main/java/com/solaria/persistence/domain/enums/PlanCycle.java
rename to src/main/java/com/solaria/persistence/domain/enums/company/PlanCycle.java
index d2ca7db..81add9b 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/PlanCycle.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/company/PlanCycle.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.company;
public enum PlanCycle {
MONTHLY,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/SubscriptionStatus.java b/src/main/java/com/solaria/persistence/domain/enums/company/SubscriptionStatus.java
similarity index 57%
rename from src/main/java/com/solaria/persistence/domain/enums/SubscriptionStatus.java
rename to src/main/java/com/solaria/persistence/domain/enums/company/SubscriptionStatus.java
index 868833a..d0d9273 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/SubscriptionStatus.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/company/SubscriptionStatus.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.company;
public enum SubscriptionStatus {
PAID,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/ServiceStatus.java b/src/main/java/com/solaria/persistence/domain/enums/execution/ServiceStatus.java
similarity index 60%
rename from src/main/java/com/solaria/persistence/domain/enums/ServiceStatus.java
rename to src/main/java/com/solaria/persistence/domain/enums/execution/ServiceStatus.java
index 081425c..4a6ec2f 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/ServiceStatus.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/execution/ServiceStatus.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.execution;
public enum ServiceStatus {
OPEN,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/DayWeek.java b/src/main/java/com/solaria/persistence/domain/enums/professional/DayWeek.java
similarity index 66%
rename from src/main/java/com/solaria/persistence/domain/enums/DayWeek.java
rename to src/main/java/com/solaria/persistence/domain/enums/professional/DayWeek.java
index cc8122b..2bc1fd0 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/DayWeek.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/professional/DayWeek.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.professional;
public enum DayWeek {
MONDAY,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/TechnicalAffiliationType.java b/src/main/java/com/solaria/persistence/domain/enums/professional/TechnicalAffiliationType.java
similarity index 59%
rename from src/main/java/com/solaria/persistence/domain/enums/TechnicalAffiliationType.java
rename to src/main/java/com/solaria/persistence/domain/enums/professional/TechnicalAffiliationType.java
index 050e1ea..000dbc4 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/TechnicalAffiliationType.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/professional/TechnicalAffiliationType.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.professional;
public enum TechnicalAffiliationType {
INDEPENDENT,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/ProposalStatus.java b/src/main/java/com/solaria/persistence/domain/enums/proposal/ProposalStatus.java
similarity index 68%
rename from src/main/java/com/solaria/persistence/domain/enums/ProposalStatus.java
rename to src/main/java/com/solaria/persistence/domain/enums/proposal/ProposalStatus.java
index 9519dcd..71e1650 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/ProposalStatus.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/proposal/ProposalStatus.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.proposal;
public enum ProposalStatus {
AWAITING_SUPPLIER,
diff --git a/src/main/java/com/solaria/persistence/domain/enums/shared/PhotoType.java b/src/main/java/com/solaria/persistence/domain/enums/shared/PhotoType.java
new file mode 100644
index 0000000..08199bf
--- /dev/null
+++ b/src/main/java/com/solaria/persistence/domain/enums/shared/PhotoType.java
@@ -0,0 +1,6 @@
+package com.solaria.persistence.domain.enums.shared;
+
+public enum PhotoType {
+ PROFILE,
+ BANNER
+}
diff --git a/src/main/java/com/solaria/persistence/domain/enums/LocationType.java b/src/main/java/com/solaria/persistence/domain/enums/unit/LocationType.java
similarity index 56%
rename from src/main/java/com/solaria/persistence/domain/enums/LocationType.java
rename to src/main/java/com/solaria/persistence/domain/enums/unit/LocationType.java
index ad3ba60..ad1ccd4 100644
--- a/src/main/java/com/solaria/persistence/domain/enums/LocationType.java
+++ b/src/main/java/com/solaria/persistence/domain/enums/unit/LocationType.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.domain.enums;
+package com.solaria.persistence.domain.enums.unit;
public enum LocationType {
BUILDING,
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdateQuantityDTO.java b/src/main/java/com/solaria/persistence/dto/patch/catalog/UpdateQuantityDTO.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdateQuantityDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/catalog/UpdateQuantityDTO.java
index f376950..839d0c6 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdateQuantityDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/catalog/UpdateQuantityDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.catalog;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdateBusinessContactIdDTO.java b/src/main/java/com/solaria/persistence/dto/patch/company/UpdateBusinessContactIdDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdateBusinessContactIdDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/company/UpdateBusinessContactIdDTO.java
index b6a7410..e035384 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdateBusinessContactIdDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/company/UpdateBusinessContactIdDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.company;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdateCompanyAddressIdDTO.java b/src/main/java/com/solaria/persistence/dto/patch/company/UpdateCompanyAddressIdDTO.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdateCompanyAddressIdDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/company/UpdateCompanyAddressIdDTO.java
index 3060069..8210432 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdateCompanyAddressIdDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/company/UpdateCompanyAddressIdDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.company;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/ServiceAcceptanceDTO.java b/src/main/java/com/solaria/persistence/dto/patch/execution/ServiceAcceptanceDTO.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/dto/patch/ServiceAcceptanceDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/execution/ServiceAcceptanceDTO.java
index f39db8c..d7c246f 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/ServiceAcceptanceDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/execution/ServiceAcceptanceDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.execution;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/ServiceScheduleDTO.java b/src/main/java/com/solaria/persistence/dto/patch/execution/ServiceScheduleDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/patch/ServiceScheduleDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/execution/ServiceScheduleDTO.java
index 1879672..717ae8a 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/ServiceScheduleDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/execution/ServiceScheduleDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.execution;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdateFunctionDTO.java b/src/main/java/com/solaria/persistence/dto/patch/execution/UpdateFunctionDTO.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdateFunctionDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/execution/UpdateFunctionDTO.java
index a73bd35..17308d1 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdateFunctionDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/execution/UpdateFunctionDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.execution;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdatePurposeDTO.java b/src/main/java/com/solaria/persistence/dto/patch/execution/UpdatePurposeDTO.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdatePurposeDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/execution/UpdatePurposeDTO.java
index 2a70ac3..4831b82 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdatePurposeDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/execution/UpdatePurposeDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.execution;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdatePositionDTO.java b/src/main/java/com/solaria/persistence/dto/patch/identity/UpdatePositionDTO.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdatePositionDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/identity/UpdatePositionDTO.java
index 0fa19ae..acaa8f2 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdatePositionDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/identity/UpdatePositionDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.identity;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdateActiveDTO.java b/src/main/java/com/solaria/persistence/dto/patch/professional/UpdateActiveDTO.java
similarity index 79%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdateActiveDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/professional/UpdateActiveDTO.java
index 5c4a76c..ed6a070 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdateActiveDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/professional/UpdateActiveDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.professional;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdateTypeDTO.java b/src/main/java/com/solaria/persistence/dto/patch/professional/UpdateTypeDTO.java
similarity index 64%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdateTypeDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/professional/UpdateTypeDTO.java
index 306ca84..d0f0634 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdateTypeDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/professional/UpdateTypeDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.professional;
-import com.solaria.persistence.domain.enums.TechnicalAffiliationType;
+import com.solaria.persistence.domain.enums.professional.TechnicalAffiliationType;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdateNotesDTO.java b/src/main/java/com/solaria/persistence/dto/patch/proposal/UpdateNotesDTO.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdateNotesDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/proposal/UpdateNotesDTO.java
index d4c9981..151b61f 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdateNotesDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/proposal/UpdateNotesDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.proposal;
import jakarta.validation.constraints.Size;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/patch/UpdateLocalUnitAddressIdDTO.java b/src/main/java/com/solaria/persistence/dto/patch/unit/UpdateLocalUnitAddressIdDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/patch/UpdateLocalUnitAddressIdDTO.java
rename to src/main/java/com/solaria/persistence/dto/patch/unit/UpdateLocalUnitAddressIdDTO.java
index 2757443..a9dc590 100644
--- a/src/main/java/com/solaria/persistence/dto/patch/UpdateLocalUnitAddressIdDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/patch/unit/UpdateLocalUnitAddressIdDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.patch;
+package com.solaria.persistence.dto.patch.unit;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ServiceTokenMintRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/auth/ServiceTokenMintRequestDTO.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/dto/request/ServiceTokenMintRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/auth/ServiceTokenMintRequestDTO.java
index 74e93c9..159d5c5 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ServiceTokenMintRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/auth/ServiceTokenMintRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.auth;
import jakarta.validation.constraints.NotBlank;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ServiceTokenRefreshRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/auth/ServiceTokenRefreshRequestDTO.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/dto/request/ServiceTokenRefreshRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/auth/ServiceTokenRefreshRequestDTO.java
index 224e22b..a8c1ad5 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ServiceTokenRefreshRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/auth/ServiceTokenRefreshRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.auth;
import jakarta.validation.constraints.NotBlank;
diff --git a/src/main/java/com/solaria/persistence/dto/request/InventoryRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/catalog/InventoryRequestDTO.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/dto/request/InventoryRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/catalog/InventoryRequestDTO.java
index d3f5f3d..363da6c 100644
--- a/src/main/java/com/solaria/persistence/dto/request/InventoryRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/catalog/InventoryRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.catalog;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ModelRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/catalog/ModelRequestDTO.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/dto/request/ModelRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/catalog/ModelRequestDTO.java
index a70bae7..b5e2c49 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ModelRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/catalog/ModelRequestDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.catalog;
-import com.solaria.persistence.domain.enums.PanelType;
+import com.solaria.persistence.domain.enums.catalog.PanelType;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/solaria/persistence/dto/request/OfferRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/catalog/OfferRequestDTO.java
similarity index 96%
rename from src/main/java/com/solaria/persistence/dto/request/OfferRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/catalog/OfferRequestDTO.java
index ae7d487..dd76819 100644
--- a/src/main/java/com/solaria/persistence/dto/request/OfferRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/catalog/OfferRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.catalog;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;
diff --git a/src/main/java/com/solaria/persistence/dto/request/SupplierRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/catalog/SupplierRequestDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/request/SupplierRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/catalog/SupplierRequestDTO.java
index 31bfeac..58faad5 100644
--- a/src/main/java/com/solaria/persistence/dto/request/SupplierRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/catalog/SupplierRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.catalog;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/SupplierSearchFilterDTO.java b/src/main/java/com/solaria/persistence/dto/request/catalog/SupplierSearchFilterDTO.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/dto/request/SupplierSearchFilterDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/catalog/SupplierSearchFilterDTO.java
index b651437..30f2ba7 100644
--- a/src/main/java/com/solaria/persistence/dto/request/SupplierSearchFilterDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/catalog/SupplierSearchFilterDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.catalog;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/solaria/persistence/dto/request/BusinessContactRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/company/BusinessContactRequestDTO.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/dto/request/BusinessContactRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/company/BusinessContactRequestDTO.java
index 61ba2a1..3b4dfb2 100644
--- a/src/main/java/com/solaria/persistence/dto/request/BusinessContactRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/company/BusinessContactRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.company;
import com.solaria.persistence.util.RegexValidator;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ChargeRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/company/ChargeRequestDTO.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/dto/request/ChargeRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/company/ChargeRequestDTO.java
index 6041d41..74b1872 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ChargeRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/company/ChargeRequestDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.company;
-import com.solaria.persistence.domain.enums.PaymentMethod;
+import com.solaria.persistence.domain.enums.company.PaymentMethod;
import jakarta.validation.constraints.FutureOrPresent;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
diff --git a/src/main/java/com/solaria/persistence/dto/request/CompanyPlansRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/company/CompanyPlansRequestDTO.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/dto/request/CompanyPlansRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/company/CompanyPlansRequestDTO.java
index 418ae46..42e9da7 100644
--- a/src/main/java/com/solaria/persistence/dto/request/CompanyPlansRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/company/CompanyPlansRequestDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.company;
-import com.solaria.persistence.domain.enums.PlanCycle;
+import com.solaria.persistence.domain.enums.company.PlanCycle;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/CompanyPositionsRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/company/CompanyPositionsRequestDTO.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/dto/request/CompanyPositionsRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/company/CompanyPositionsRequestDTO.java
index a46620c..3b35c9b 100644
--- a/src/main/java/com/solaria/persistence/dto/request/CompanyPositionsRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/company/CompanyPositionsRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.company;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/request/CompanyRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/company/CompanyRequestDTO.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/dto/request/CompanyRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/company/CompanyRequestDTO.java
index c684742..e0e119c 100644
--- a/src/main/java/com/solaria/persistence/dto/request/CompanyRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/company/CompanyRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.company;
import com.solaria.persistence.util.RegexValidator;
diff --git a/src/main/java/com/solaria/persistence/dto/request/SubscriptionRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/company/SubscriptionRequestDTO.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/dto/request/SubscriptionRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/company/SubscriptionRequestDTO.java
index 779f077..3c799f0 100644
--- a/src/main/java/com/solaria/persistence/dto/request/SubscriptionRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/company/SubscriptionRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.company;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/RequesterRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/execution/RequesterRequestDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/request/RequesterRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/execution/RequesterRequestDTO.java
index 6f97b42..11d0370 100644
--- a/src/main/java/com/solaria/persistence/dto/request/RequesterRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/execution/RequesterRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.execution;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ServiceContractRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/execution/ServiceContractRequestDTO.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/dto/request/ServiceContractRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/execution/ServiceContractRequestDTO.java
index 4df3853..562303c 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ServiceContractRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/execution/ServiceContractRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.execution;
import jakarta.validation.constraints.FutureOrPresent;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ServiceExecutorRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/execution/ServiceExecutorRequestDTO.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/dto/request/ServiceExecutorRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/execution/ServiceExecutorRequestDTO.java
index 162ea3f..fce216a 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ServiceExecutorRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/execution/ServiceExecutorRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.execution;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/request/TechnicalProjectRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/execution/TechnicalProjectRequestDTO.java
similarity index 74%
rename from src/main/java/com/solaria/persistence/dto/request/TechnicalProjectRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/execution/TechnicalProjectRequestDTO.java
index a71d111..a3a969c 100644
--- a/src/main/java/com/solaria/persistence/dto/request/TechnicalProjectRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/execution/TechnicalProjectRequestDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.execution;
-import com.solaria.persistence.domain.enums.ServiceStatus;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/TechnicalServiceRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/execution/TechnicalServiceRequestDTO.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/dto/request/TechnicalServiceRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/execution/TechnicalServiceRequestDTO.java
index e60a29a..65db348 100644
--- a/src/main/java/com/solaria/persistence/dto/request/TechnicalServiceRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/execution/TechnicalServiceRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.execution;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/solaria/persistence/dto/request/InternalUserProvisionRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/identity/InternalUserProvisionRequestDTO.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/dto/request/InternalUserProvisionRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/identity/InternalUserProvisionRequestDTO.java
index a45e550..2de7c05 100644
--- a/src/main/java/com/solaria/persistence/dto/request/InternalUserProvisionRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/identity/InternalUserProvisionRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/request/PermissionRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/identity/PermissionRequestDTO.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/dto/request/PermissionRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/identity/PermissionRequestDTO.java
index 4262b25..9b23d85 100644
--- a/src/main/java/com/solaria/persistence/dto/request/PermissionRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/identity/PermissionRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.identity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
diff --git a/src/main/java/com/solaria/persistence/dto/request/PersonRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/identity/PersonRequestDTO.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/dto/request/PersonRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/identity/PersonRequestDTO.java
index 028daff..4c3f207 100644
--- a/src/main/java/com/solaria/persistence/dto/request/PersonRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/identity/PersonRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.identity;
import com.solaria.persistence.util.RegexValidator;
diff --git a/src/main/java/com/solaria/persistence/dto/request/PositionPermissionRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/identity/PositionPermissionRequestDTO.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/dto/request/PositionPermissionRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/identity/PositionPermissionRequestDTO.java
index 53fb5be..9851ac7 100644
--- a/src/main/java/com/solaria/persistence/dto/request/PositionPermissionRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/identity/PositionPermissionRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/request/PositionRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/identity/PositionRequestDTO.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/dto/request/PositionRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/identity/PositionRequestDTO.java
index 65fcba4..01e7813 100644
--- a/src/main/java/com/solaria/persistence/dto/request/PositionRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/identity/PositionRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.identity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
diff --git a/src/main/java/com/solaria/persistence/dto/request/UserCompanyRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/identity/UserCompanyRequestDTO.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/dto/request/UserCompanyRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/identity/UserCompanyRequestDTO.java
index 9c865e5..895eec9 100644
--- a/src/main/java/com/solaria/persistence/dto/request/UserCompanyRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/identity/UserCompanyRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/request/UserRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/identity/UserRequestDTO.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/dto/request/UserRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/identity/UserRequestDTO.java
index 5bee4c6..76f3cde 100644
--- a/src/main/java/com/solaria/persistence/dto/request/UserRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/identity/UserRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.identity;
import com.solaria.persistence.util.RegexValidator;
diff --git a/src/main/java/com/solaria/persistence/dto/request/CertificationRecordRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/CertificationRecordRequestDTO.java
similarity index 78%
rename from src/main/java/com/solaria/persistence/dto/request/CertificationRecordRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/CertificationRecordRequestDTO.java
index f15789f..66a6871 100644
--- a/src/main/java/com/solaria/persistence/dto/request/CertificationRecordRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/CertificationRecordRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/CertificationRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/CertificationRequestDTO.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/dto/request/CertificationRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/CertificationRequestDTO.java
index 7cd973f..0b5fd38 100644
--- a/src/main/java/com/solaria/persistence/dto/request/CertificationRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/CertificationRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
import jakarta.validation.constraints.Size;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ProfessionRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/ProfessionRequestDTO.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/dto/request/ProfessionRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/ProfessionRequestDTO.java
index 228c3cd..7f9d5f4 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ProfessionRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/ProfessionRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
import jakarta.validation.constraints.Size;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ProfessionalRegistrationRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/ProfessionalRegistrationRequestDTO.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/dto/request/ProfessionalRegistrationRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/ProfessionalRegistrationRequestDTO.java
index 79b0f44..c42ea53 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ProfessionalRegistrationRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/ProfessionalRegistrationRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
import jakarta.validation.constraints.Size;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ProfessionalReviewRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/ProfessionalReviewRequestDTO.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/dto/request/ProfessionalReviewRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/ProfessionalReviewRequestDTO.java
index 46f9424..66fa237 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ProfessionalReviewRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/ProfessionalReviewRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ShiftRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/ShiftRequestDTO.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/dto/request/ShiftRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/ShiftRequestDTO.java
index d8423e7..2137727 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ShiftRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/ShiftRequestDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
-import com.solaria.persistence.domain.enums.DayWeek;
+import com.solaria.persistence.domain.enums.professional.DayWeek;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/TechnicalCourseRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/TechnicalCourseRequestDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/request/TechnicalCourseRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/TechnicalCourseRequestDTO.java
index e90d5d9..5630e64 100644
--- a/src/main/java/com/solaria/persistence/dto/request/TechnicalCourseRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/TechnicalCourseRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
import jakarta.validation.constraints.Size;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/TechnicianAffiliationRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/TechnicianAffiliationRequestDTO.java
similarity index 74%
rename from src/main/java/com/solaria/persistence/dto/request/TechnicianAffiliationRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/TechnicianAffiliationRequestDTO.java
index 505748a..1217dda 100644
--- a/src/main/java/com/solaria/persistence/dto/request/TechnicianAffiliationRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/TechnicianAffiliationRequestDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
-import com.solaria.persistence.domain.enums.TechnicalAffiliationType;
+import com.solaria.persistence.domain.enums.professional.TechnicalAffiliationType;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/TechnicianRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/professional/TechnicianRequestDTO.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/dto/request/TechnicianRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/professional/TechnicianRequestDTO.java
index d0ad3ee..7dbc476 100644
--- a/src/main/java/com/solaria/persistence/dto/request/TechnicianRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/professional/TechnicianRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.professional;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ProposalItemRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/proposal/ProposalItemRequestDTO.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/dto/request/ProposalItemRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/proposal/ProposalItemRequestDTO.java
index d3dd449..9914a94 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ProposalItemRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/proposal/ProposalItemRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.proposal;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ProposalRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/proposal/ProposalRequestDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/request/ProposalRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/proposal/ProposalRequestDTO.java
index 6e78f46..6a6ff14 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ProposalRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/proposal/ProposalRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.proposal;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ProposalUnitRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/proposal/ProposalUnitRequestDTO.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/dto/request/ProposalUnitRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/proposal/ProposalUnitRequestDTO.java
index 635b41f..880a5f3 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ProposalUnitRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/proposal/ProposalUnitRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.proposal;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
diff --git a/src/main/java/com/solaria/persistence/dto/request/AddressRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/shared/AddressRequestDTO.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/dto/request/AddressRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/shared/AddressRequestDTO.java
index aea6d64..e765f33 100644
--- a/src/main/java/com/solaria/persistence/dto/request/AddressRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/shared/AddressRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.shared;
import com.solaria.persistence.util.RegexValidator;
diff --git a/src/main/java/com/solaria/persistence/dto/request/ContactRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/shared/ContactRequestDTO.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/dto/request/ContactRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/shared/ContactRequestDTO.java
index 6a6dbb5..9987e07 100644
--- a/src/main/java/com/solaria/persistence/dto/request/ContactRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/shared/ContactRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.shared;
import com.solaria.persistence.util.RegexValidator;
diff --git a/src/main/java/com/solaria/persistence/dto/request/FluxLogRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/shared/FluxLogRequestDTO.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/dto/request/FluxLogRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/shared/FluxLogRequestDTO.java
index e90792a..f052419 100644
--- a/src/main/java/com/solaria/persistence/dto/request/FluxLogRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/shared/FluxLogRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.shared;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
diff --git a/src/main/java/com/solaria/persistence/dto/request/GeolocalizationRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/shared/GeolocalizationRequestDTO.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/dto/request/GeolocalizationRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/shared/GeolocalizationRequestDTO.java
index 6391b2d..ffea240 100644
--- a/src/main/java/com/solaria/persistence/dto/request/GeolocalizationRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/shared/GeolocalizationRequestDTO.java
@@ -1,5 +1,5 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.shared;
import java.math.BigDecimal;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/request/EnergyBillRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/unit/EnergyBillRequestDTO.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/dto/request/EnergyBillRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/unit/EnergyBillRequestDTO.java
index ce92b0f..0be008a 100644
--- a/src/main/java/com/solaria/persistence/dto/request/EnergyBillRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/unit/EnergyBillRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.unit;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
diff --git a/src/main/java/com/solaria/persistence/dto/request/LocalUnitRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/unit/LocalUnitRequestDTO.java
similarity index 79%
rename from src/main/java/com/solaria/persistence/dto/request/LocalUnitRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/unit/LocalUnitRequestDTO.java
index abcbd42..c73e140 100644
--- a/src/main/java/com/solaria/persistence/dto/request/LocalUnitRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/unit/LocalUnitRequestDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.unit;
-import com.solaria.persistence.domain.enums.LocationType;
+import com.solaria.persistence.domain.enums.unit.LocationType;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/request/UnitSpecificationsRequestDTO.java b/src/main/java/com/solaria/persistence/dto/request/unit/UnitSpecificationsRequestDTO.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/dto/request/UnitSpecificationsRequestDTO.java
rename to src/main/java/com/solaria/persistence/dto/request/unit/UnitSpecificationsRequestDTO.java
index cb2ccf1..ac2e586 100644
--- a/src/main/java/com/solaria/persistence/dto/request/UnitSpecificationsRequestDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/request/unit/UnitSpecificationsRequestDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.request;
+package com.solaria.persistence.dto.request.unit;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ServiceTokenResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/auth/ServiceTokenResponseDTO.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/dto/response/ServiceTokenResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/auth/ServiceTokenResponseDTO.java
index ef247e5..12aba61 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ServiceTokenResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/auth/ServiceTokenResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.auth;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/solaria/persistence/dto/response/InventoryResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/catalog/InventoryResponseDTO.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/dto/response/InventoryResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/catalog/InventoryResponseDTO.java
index 04317ae..3b22cd1 100644
--- a/src/main/java/com/solaria/persistence/dto/response/InventoryResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/catalog/InventoryResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.catalog;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ModelPhotoResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/catalog/ModelPhotoResponseDTO.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/dto/response/ModelPhotoResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/catalog/ModelPhotoResponseDTO.java
index aa04df6..6fb3f04 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ModelPhotoResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/catalog/ModelPhotoResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.catalog;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ModelResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/catalog/ModelResponseDTO.java
similarity index 76%
rename from src/main/java/com/solaria/persistence/dto/response/ModelResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/catalog/ModelResponseDTO.java
index 86f5e67..e8291ac 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ModelResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/catalog/ModelResponseDTO.java
@@ -1,7 +1,7 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.catalog;
-import com.solaria.persistence.domain.enums.ModelStatus;
-import com.solaria.persistence.domain.enums.PanelType;
+import com.solaria.persistence.domain.enums.catalog.ModelStatus;
+import com.solaria.persistence.domain.enums.catalog.PanelType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/OfferResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/catalog/OfferResponseDTO.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/dto/response/OfferResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/catalog/OfferResponseDTO.java
index 61d57c3..f089637 100644
--- a/src/main/java/com/solaria/persistence/dto/response/OfferResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/catalog/OfferResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.catalog;
-import com.solaria.persistence.domain.enums.TranslationStatus;
+import com.solaria.persistence.domain.enums.catalog.TranslationStatus;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/OfferTranslationResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/catalog/OfferTranslationResponseDTO.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/dto/response/OfferTranslationResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/catalog/OfferTranslationResponseDTO.java
index 7dce953..57b2c6e 100644
--- a/src/main/java/com/solaria/persistence/dto/response/OfferTranslationResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/catalog/OfferTranslationResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.catalog;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/SupplierResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/catalog/SupplierResponseDTO.java
similarity index 56%
rename from src/main/java/com/solaria/persistence/dto/response/SupplierResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/catalog/SupplierResponseDTO.java
index 4ff1b19..a746680 100644
--- a/src/main/java/com/solaria/persistence/dto/response/SupplierResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/catalog/SupplierResponseDTO.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.catalog;
-import com.solaria.persistence.domain.enums.SupplierStatus;
+import com.solaria.persistence.domain.enums.catalog.SupplierStatus;
import lombok.Getter;
import lombok.Setter;
import java.util.UUID;
+import com.solaria.persistence.dto.response.company.CompanyResponseDTO;
@Getter
@Setter
diff --git a/src/main/java/com/solaria/persistence/dto/response/SupplierSearchResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/catalog/SupplierSearchResponseDTO.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/dto/response/SupplierSearchResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/catalog/SupplierSearchResponseDTO.java
index a7aa46e..3808a96 100644
--- a/src/main/java/com/solaria/persistence/dto/response/SupplierSearchResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/catalog/SupplierSearchResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.catalog;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/BusinessContactResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/company/BusinessContactResponseDTO.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/dto/response/BusinessContactResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/company/BusinessContactResponseDTO.java
index 001fec5..4aa7de5 100644
--- a/src/main/java/com/solaria/persistence/dto/response/BusinessContactResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/company/BusinessContactResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.company;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ChargeResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/company/ChargeResponseDTO.java
similarity index 70%
rename from src/main/java/com/solaria/persistence/dto/response/ChargeResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/company/ChargeResponseDTO.java
index d92a3a3..f344568 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ChargeResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/company/ChargeResponseDTO.java
@@ -1,7 +1,7 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.company;
-import com.solaria.persistence.domain.enums.BillingStatus;
-import com.solaria.persistence.domain.enums.PaymentMethod;
+import com.solaria.persistence.domain.enums.company.BillingStatus;
+import com.solaria.persistence.domain.enums.company.PaymentMethod;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/CompanyPhotoResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/company/CompanyPhotoResponseDTO.java
similarity index 72%
rename from src/main/java/com/solaria/persistence/dto/response/CompanyPhotoResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/company/CompanyPhotoResponseDTO.java
index cd18491..7cebe48 100644
--- a/src/main/java/com/solaria/persistence/dto/response/CompanyPhotoResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/company/CompanyPhotoResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.company;
-import com.solaria.persistence.domain.enums.PhotoType;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/CompanyPlansResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/company/CompanyPlansResponseDTO.java
similarity index 69%
rename from src/main/java/com/solaria/persistence/dto/response/CompanyPlansResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/company/CompanyPlansResponseDTO.java
index 7e478b4..7ab9462 100644
--- a/src/main/java/com/solaria/persistence/dto/response/CompanyPlansResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/company/CompanyPlansResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.company;
-import com.solaria.persistence.domain.enums.PlanCycle;
+import com.solaria.persistence.domain.enums.company.PlanCycle;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/CompanyPositionsResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/company/CompanyPositionsResponseDTO.java
similarity index 63%
rename from src/main/java/com/solaria/persistence/dto/response/CompanyPositionsResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/company/CompanyPositionsResponseDTO.java
index 2a162a8..36a5b31 100644
--- a/src/main/java/com/solaria/persistence/dto/response/CompanyPositionsResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/company/CompanyPositionsResponseDTO.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.company;
import java.util.UUID;
import lombok.Getter;
import lombok.Setter;
+import com.solaria.persistence.dto.response.identity.PositionResponseDTO;
@Getter
@Setter
diff --git a/src/main/java/com/solaria/persistence/dto/response/CompanyResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/company/CompanyResponseDTO.java
similarity index 66%
rename from src/main/java/com/solaria/persistence/dto/response/CompanyResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/company/CompanyResponseDTO.java
index 24e2edd..d4a3c7b 100644
--- a/src/main/java/com/solaria/persistence/dto/response/CompanyResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/company/CompanyResponseDTO.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.company;
-import com.solaria.persistence.domain.enums.CompanyStatus;
+import com.solaria.persistence.domain.enums.company.CompanyStatus;
import lombok.Getter;
import lombok.Setter;
import java.util.UUID;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
@Getter
@Setter
diff --git a/src/main/java/com/solaria/persistence/dto/response/SubscriptionResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/company/SubscriptionResponseDTO.java
similarity index 76%
rename from src/main/java/com/solaria/persistence/dto/response/SubscriptionResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/company/SubscriptionResponseDTO.java
index 1d642c2..e2ec56b 100644
--- a/src/main/java/com/solaria/persistence/dto/response/SubscriptionResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/company/SubscriptionResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.company;
-import com.solaria.persistence.domain.enums.SubscriptionStatus;
+import com.solaria.persistence.domain.enums.company.SubscriptionStatus;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/RequesterResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/execution/RequesterResponseDTO.java
similarity index 63%
rename from src/main/java/com/solaria/persistence/dto/response/RequesterResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/execution/RequesterResponseDTO.java
index 141178c..3a2a51b 100644
--- a/src/main/java/com/solaria/persistence/dto/response/RequesterResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/execution/RequesterResponseDTO.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.execution;
import lombok.Getter;
import lombok.Setter;
import java.util.UUID;
+import com.solaria.persistence.dto.response.company.CompanyResponseDTO;
@Getter
@Setter
diff --git a/src/main/java/com/solaria/persistence/dto/response/ServiceContractResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/execution/ServiceContractResponseDTO.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/dto/response/ServiceContractResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/execution/ServiceContractResponseDTO.java
index 395d170..3eafcd5 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ServiceContractResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/execution/ServiceContractResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.execution;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ServiceExecutorResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/execution/ServiceExecutorResponseDTO.java
similarity index 65%
rename from src/main/java/com/solaria/persistence/dto/response/ServiceExecutorResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/execution/ServiceExecutorResponseDTO.java
index 6279aba..d9a4163 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ServiceExecutorResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/execution/ServiceExecutorResponseDTO.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.execution;
import java.util.UUID;
import lombok.Getter;
import lombok.Setter;
+import com.solaria.persistence.dto.response.professional.TechnicianAffiliationResponseDTO;
@Setter
@Getter
diff --git a/src/main/java/com/solaria/persistence/dto/response/TechnicalProjectResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/execution/TechnicalProjectResponseDTO.java
similarity index 75%
rename from src/main/java/com/solaria/persistence/dto/response/TechnicalProjectResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/execution/TechnicalProjectResponseDTO.java
index f1cc1ce..4ef72d7 100644
--- a/src/main/java/com/solaria/persistence/dto/response/TechnicalProjectResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/execution/TechnicalProjectResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.execution;
-import com.solaria.persistence.domain.enums.ServiceStatus;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/TechnicalServiceResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/execution/TechnicalServiceResponseDTO.java
similarity index 78%
rename from src/main/java/com/solaria/persistence/dto/response/TechnicalServiceResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/execution/TechnicalServiceResponseDTO.java
index 33b812f..001162f 100644
--- a/src/main/java/com/solaria/persistence/dto/response/TechnicalServiceResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/execution/TechnicalServiceResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.execution;
-import com.solaria.persistence.domain.enums.ServiceStatus;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/InternalUserProvisionResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/identity/InternalUserProvisionResponseDTO.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/dto/response/InternalUserProvisionResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/identity/InternalUserProvisionResponseDTO.java
index 7a3e269..543eac2 100644
--- a/src/main/java/com/solaria/persistence/dto/response/InternalUserProvisionResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/identity/InternalUserProvisionResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/PermissionResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/identity/PermissionResponseDTO.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/dto/response/PermissionResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/identity/PermissionResponseDTO.java
index 0b6157d..a4cbf25 100644
--- a/src/main/java/com/solaria/persistence/dto/response/PermissionResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/identity/PermissionResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.identity;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/PersonResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/identity/PersonResponseDTO.java
similarity index 71%
rename from src/main/java/com/solaria/persistence/dto/response/PersonResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/identity/PersonResponseDTO.java
index 1776b8e..afc9d4b 100644
--- a/src/main/java/com/solaria/persistence/dto/response/PersonResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/identity/PersonResponseDTO.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.identity;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.util.UUID;
+import com.solaria.persistence.dto.response.shared.ContactResponseDTO;
@Setter
@Getter
diff --git a/src/main/java/com/solaria/persistence/dto/response/PositionPermissionResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/identity/PositionPermissionResponseDTO.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/dto/response/PositionPermissionResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/identity/PositionPermissionResponseDTO.java
index 5c9a376..c56a6be 100644
--- a/src/main/java/com/solaria/persistence/dto/response/PositionPermissionResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/identity/PositionPermissionResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/PositionResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/identity/PositionResponseDTO.java
similarity index 78%
rename from src/main/java/com/solaria/persistence/dto/response/PositionResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/identity/PositionResponseDTO.java
index 9710802..6d6e713 100644
--- a/src/main/java/com/solaria/persistence/dto/response/PositionResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/identity/PositionResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/UserCompanyResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/identity/UserCompanyResponseDTO.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/dto/response/UserCompanyResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/identity/UserCompanyResponseDTO.java
index 60a7ae5..6956cae 100644
--- a/src/main/java/com/solaria/persistence/dto/response/UserCompanyResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/identity/UserCompanyResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.identity;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/UserPhotoResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/identity/UserPhotoResponseDTO.java
similarity index 71%
rename from src/main/java/com/solaria/persistence/dto/response/UserPhotoResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/identity/UserPhotoResponseDTO.java
index 1f1eb16..4c443a0 100644
--- a/src/main/java/com/solaria/persistence/dto/response/UserPhotoResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/identity/UserPhotoResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.identity;
-import com.solaria.persistence.domain.enums.PhotoType;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/UserResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/identity/UserResponseDTO.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/dto/response/UserResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/identity/UserResponseDTO.java
index 398898c..8a639b5 100644
--- a/src/main/java/com/solaria/persistence/dto/response/UserResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/identity/UserResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.identity;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/CertificationRecordResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/CertificationRecordResponseDTO.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/dto/response/CertificationRecordResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/CertificationRecordResponseDTO.java
index eae870a..f7025e2 100644
--- a/src/main/java/com/solaria/persistence/dto/response/CertificationRecordResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/CertificationRecordResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/CertificationResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/CertificationResponseDTO.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/dto/response/CertificationResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/CertificationResponseDTO.java
index 609b3cd..9390176 100644
--- a/src/main/java/com/solaria/persistence/dto/response/CertificationResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/CertificationResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
import java.time.LocalDateTime;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ProfessionResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/ProfessionResponseDTO.java
similarity index 78%
rename from src/main/java/com/solaria/persistence/dto/response/ProfessionResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/ProfessionResponseDTO.java
index 17140e2..2b1934a 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ProfessionResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/ProfessionResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ProfessionalRegistrationResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/ProfessionalRegistrationResponseDTO.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/dto/response/ProfessionalRegistrationResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/ProfessionalRegistrationResponseDTO.java
index fa929ac..b16c080 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ProfessionalRegistrationResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/ProfessionalRegistrationResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
import java.time.LocalDateTime;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ProfessionalReviewResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/ProfessionalReviewResponseDTO.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/dto/response/ProfessionalReviewResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/ProfessionalReviewResponseDTO.java
index 0900172..faecade 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ProfessionalReviewResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/ProfessionalReviewResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
import lombok.Builder;
import lombok.Getter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ShiftResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/ShiftResponseDTO.java
similarity index 71%
rename from src/main/java/com/solaria/persistence/dto/response/ShiftResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/ShiftResponseDTO.java
index 8868f24..e854cd9 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ShiftResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/ShiftResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
-import com.solaria.persistence.domain.enums.DayWeek;
+import com.solaria.persistence.domain.enums.professional.DayWeek;
import java.time.LocalDateTime;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/TechnicalCourseResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/TechnicalCourseResponseDTO.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/dto/response/TechnicalCourseResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/TechnicalCourseResponseDTO.java
index a71b324..5f9948d 100644
--- a/src/main/java/com/solaria/persistence/dto/response/TechnicalCourseResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/TechnicalCourseResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/TechnicianAffiliationResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/TechnicianAffiliationResponseDTO.java
similarity index 67%
rename from src/main/java/com/solaria/persistence/dto/response/TechnicianAffiliationResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/TechnicianAffiliationResponseDTO.java
index 0709d3d..bc68aac 100644
--- a/src/main/java/com/solaria/persistence/dto/response/TechnicianAffiliationResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/TechnicianAffiliationResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
-import com.solaria.persistence.domain.enums.TechnicalAffiliationType;
+import com.solaria.persistence.domain.enums.professional.TechnicalAffiliationType;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/TechnicianResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/professional/TechnicianResponseDTO.java
similarity index 64%
rename from src/main/java/com/solaria/persistence/dto/response/TechnicianResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/professional/TechnicianResponseDTO.java
index 89e108c..83ff3c8 100644
--- a/src/main/java/com/solaria/persistence/dto/response/TechnicianResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/professional/TechnicianResponseDTO.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.professional;
import lombok.Getter;
import lombok.Setter;
import java.util.UUID;
+import com.solaria.persistence.dto.response.identity.PersonResponseDTO;
@Getter
@Setter
diff --git a/src/main/java/com/solaria/persistence/dto/response/ProposalItemResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/proposal/ProposalItemResponseDTO.java
similarity index 73%
rename from src/main/java/com/solaria/persistence/dto/response/ProposalItemResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/proposal/ProposalItemResponseDTO.java
index 87bcddb..3fb4055 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ProposalItemResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/proposal/ProposalItemResponseDTO.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.proposal;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.UUID;
+import com.solaria.persistence.dto.response.catalog.OfferResponseDTO;
@Getter
@Setter
diff --git a/src/main/java/com/solaria/persistence/dto/response/ProposalResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/proposal/ProposalResponseDTO.java
similarity index 76%
rename from src/main/java/com/solaria/persistence/dto/response/ProposalResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/proposal/ProposalResponseDTO.java
index 3d18e90..0eae030 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ProposalResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/proposal/ProposalResponseDTO.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.proposal;
-import com.solaria.persistence.domain.enums.ProposalStatus;
+import com.solaria.persistence.domain.enums.proposal.ProposalStatus;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ProposalUnitResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/proposal/ProposalUnitResponseDTO.java
similarity index 69%
rename from src/main/java/com/solaria/persistence/dto/response/ProposalUnitResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/proposal/ProposalUnitResponseDTO.java
index 533873a..c3728e4 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ProposalUnitResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/proposal/ProposalUnitResponseDTO.java
@@ -1,9 +1,10 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.proposal;
import lombok.Getter;
import lombok.Setter;
import java.util.UUID;
+import com.solaria.persistence.dto.response.unit.LocalUnitResponseDTO;
@Setter
@Getter
diff --git a/src/main/java/com/solaria/persistence/dto/response/AddressResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/shared/AddressResponseDTO.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/dto/response/AddressResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/shared/AddressResponseDTO.java
index 8980a14..b87ee76 100644
--- a/src/main/java/com/solaria/persistence/dto/response/AddressResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/shared/AddressResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.shared;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/solaria/persistence/dto/response/ContactResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/shared/ContactResponseDTO.java
similarity index 78%
rename from src/main/java/com/solaria/persistence/dto/response/ContactResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/shared/ContactResponseDTO.java
index b43f27c..91a337a 100644
--- a/src/main/java/com/solaria/persistence/dto/response/ContactResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/shared/ContactResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.shared;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/FluxLogResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/shared/FluxLogResponseDTO.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/dto/response/FluxLogResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/shared/FluxLogResponseDTO.java
index daac31e..5b1140a 100644
--- a/src/main/java/com/solaria/persistence/dto/response/FluxLogResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/shared/FluxLogResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.shared;
import java.time.OffsetDateTime;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/GeolocalizationResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/shared/GeolocalizationResponseDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/response/GeolocalizationResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/shared/GeolocalizationResponseDTO.java
index e289b25..cbd4e9c 100644
--- a/src/main/java/com/solaria/persistence/dto/response/GeolocalizationResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/shared/GeolocalizationResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.shared;
import java.math.BigDecimal;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/dto/response/EnergyBillResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/unit/EnergyBillResponseDTO.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/dto/response/EnergyBillResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/unit/EnergyBillResponseDTO.java
index f1ca229..7cc25eb 100644
--- a/src/main/java/com/solaria/persistence/dto/response/EnergyBillResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/unit/EnergyBillResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.unit;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/LocalUnitPhotoResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/unit/LocalUnitPhotoResponseDTO.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/dto/response/LocalUnitPhotoResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/unit/LocalUnitPhotoResponseDTO.java
index fbe7eca..aaf92f5 100644
--- a/src/main/java/com/solaria/persistence/dto/response/LocalUnitPhotoResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/unit/LocalUnitPhotoResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.unit;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/dto/response/LocalUnitResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/unit/LocalUnitResponseDTO.java
similarity index 60%
rename from src/main/java/com/solaria/persistence/dto/response/LocalUnitResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/unit/LocalUnitResponseDTO.java
index cbb6324..70c1019 100644
--- a/src/main/java/com/solaria/persistence/dto/response/LocalUnitResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/unit/LocalUnitResponseDTO.java
@@ -1,10 +1,11 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.unit;
-import com.solaria.persistence.domain.enums.LocationType;
+import com.solaria.persistence.domain.enums.unit.LocationType;
import lombok.Getter;
import lombok.Setter;
import java.util.UUID;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
@Getter
@Setter
diff --git a/src/main/java/com/solaria/persistence/dto/response/UnitSpecificationsResponseDTO.java b/src/main/java/com/solaria/persistence/dto/response/unit/UnitSpecificationsResponseDTO.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/dto/response/UnitSpecificationsResponseDTO.java
rename to src/main/java/com/solaria/persistence/dto/response/unit/UnitSpecificationsResponseDTO.java
index 13f923d..f6bd9c6 100644
--- a/src/main/java/com/solaria/persistence/dto/response/UnitSpecificationsResponseDTO.java
+++ b/src/main/java/com/solaria/persistence/dto/response/unit/UnitSpecificationsResponseDTO.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.dto.response;
+package com.solaria.persistence.dto.response.unit;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/solaria/persistence/openapi/InventoryOpenApi.java b/src/main/java/com/solaria/persistence/openapi/catalog/InventoryOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/InventoryOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/catalog/InventoryOpenApi.java
index a630dff..70d4485 100644
--- a/src/main/java/com/solaria/persistence/openapi/InventoryOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/catalog/InventoryOpenApi.java
@@ -1,13 +1,13 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.catalog;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.patch.UpdateQuantityDTO;
-import com.solaria.persistence.dto.request.InventoryRequestDTO;
-import com.solaria.persistence.dto.response.InventoryResponseDTO;
+import com.solaria.persistence.dto.patch.catalog.UpdateQuantityDTO;
+import com.solaria.persistence.dto.request.catalog.InventoryRequestDTO;
+import com.solaria.persistence.dto.response.catalog.InventoryResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ModelOpenApi.java b/src/main/java/com/solaria/persistence/openapi/catalog/ModelOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/ModelOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/catalog/ModelOpenApi.java
index 2fb2680..f367ed4 100644
--- a/src/main/java/com/solaria/persistence/openapi/ModelOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/catalog/ModelOpenApi.java
@@ -1,13 +1,13 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.catalog;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.domain.enums.ModelStatus;
-import com.solaria.persistence.dto.request.ModelRequestDTO;
-import com.solaria.persistence.dto.response.ModelResponseDTO;
+import com.solaria.persistence.domain.enums.catalog.ModelStatus;
+import com.solaria.persistence.dto.request.catalog.ModelRequestDTO;
+import com.solaria.persistence.dto.response.catalog.ModelResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ModelPhotoOpenApi.java b/src/main/java/com/solaria/persistence/openapi/catalog/ModelPhotoOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/ModelPhotoOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/catalog/ModelPhotoOpenApi.java
index f121fde..72f5c42 100644
--- a/src/main/java/com/solaria/persistence/openapi/ModelPhotoOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/catalog/ModelPhotoOpenApi.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.catalog;
import java.util.List;
import java.util.UUID;
@@ -6,7 +6,7 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.dto.response.ModelPhotoResponseDTO;
+import com.solaria.persistence.dto.response.catalog.ModelPhotoResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/OfferOpenApi.java b/src/main/java/com/solaria/persistence/openapi/catalog/OfferOpenApi.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/openapi/OfferOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/catalog/OfferOpenApi.java
index 024dd90..2b5fbce 100644
--- a/src/main/java/com/solaria/persistence/openapi/OfferOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/catalog/OfferOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.catalog;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.OfferRequestDTO;
-import com.solaria.persistence.dto.response.OfferResponseDTO;
+import com.solaria.persistence.dto.request.catalog.OfferRequestDTO;
+import com.solaria.persistence.dto.response.catalog.OfferResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/SupplierOpenApi.java b/src/main/java/com/solaria/persistence/openapi/catalog/SupplierOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/SupplierOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/catalog/SupplierOpenApi.java
index 94cac0a..6843797 100644
--- a/src/main/java/com/solaria/persistence/openapi/SupplierOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/catalog/SupplierOpenApi.java
@@ -1,14 +1,14 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.catalog;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.SupplierRequestDTO;
-import com.solaria.persistence.dto.request.SupplierSearchFilterDTO;
-import com.solaria.persistence.dto.response.SupplierResponseDTO;
-import com.solaria.persistence.dto.response.SupplierSearchResponseDTO;
+import com.solaria.persistence.dto.request.catalog.SupplierRequestDTO;
+import com.solaria.persistence.dto.request.catalog.SupplierSearchFilterDTO;
+import com.solaria.persistence.dto.response.catalog.SupplierResponseDTO;
+import com.solaria.persistence.dto.response.catalog.SupplierSearchResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/BusinessContactOpenApi.java b/src/main/java/com/solaria/persistence/openapi/company/BusinessContactOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/BusinessContactOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/company/BusinessContactOpenApi.java
index 5728abc..1c61fa6 100644
--- a/src/main/java/com/solaria/persistence/openapi/BusinessContactOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/company/BusinessContactOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.company;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.BusinessContactRequestDTO;
-import com.solaria.persistence.dto.response.BusinessContactResponseDTO;
+import com.solaria.persistence.dto.request.company.BusinessContactRequestDTO;
+import com.solaria.persistence.dto.response.company.BusinessContactResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ChargeOpenApi.java b/src/main/java/com/solaria/persistence/openapi/company/ChargeOpenApi.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/openapi/ChargeOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/company/ChargeOpenApi.java
index 134c84e..0861b32 100644
--- a/src/main/java/com/solaria/persistence/openapi/ChargeOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/company/ChargeOpenApi.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.company;
import java.time.LocalDate;
import java.util.List;
@@ -6,9 +6,9 @@
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.domain.enums.PaymentMethod;
-import com.solaria.persistence.dto.request.ChargeRequestDTO;
-import com.solaria.persistence.dto.response.ChargeResponseDTO;
+import com.solaria.persistence.domain.enums.company.PaymentMethod;
+import com.solaria.persistence.dto.request.company.ChargeRequestDTO;
+import com.solaria.persistence.dto.response.company.ChargeResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/CompanyOpenApi.java b/src/main/java/com/solaria/persistence/openapi/company/CompanyOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/CompanyOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/company/CompanyOpenApi.java
index f4da34a..87ed3f7 100644
--- a/src/main/java/com/solaria/persistence/openapi/CompanyOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/company/CompanyOpenApi.java
@@ -1,14 +1,14 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.company;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.patch.UpdateBusinessContactIdDTO;
-import com.solaria.persistence.dto.patch.UpdateCompanyAddressIdDTO;
-import com.solaria.persistence.dto.request.CompanyRequestDTO;
-import com.solaria.persistence.dto.response.CompanyResponseDTO;
+import com.solaria.persistence.dto.patch.company.UpdateBusinessContactIdDTO;
+import com.solaria.persistence.dto.patch.company.UpdateCompanyAddressIdDTO;
+import com.solaria.persistence.dto.request.company.CompanyRequestDTO;
+import com.solaria.persistence.dto.response.company.CompanyResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/CompanyPhotoOpenApi.java b/src/main/java/com/solaria/persistence/openapi/company/CompanyPhotoOpenApi.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/openapi/CompanyPhotoOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/company/CompanyPhotoOpenApi.java
index c9d1b9a..5333cf5 100644
--- a/src/main/java/com/solaria/persistence/openapi/CompanyPhotoOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/company/CompanyPhotoOpenApi.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.company;
import java.util.List;
import java.util.UUID;
@@ -6,8 +6,8 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.domain.enums.PhotoType;
-import com.solaria.persistence.dto.response.CompanyPhotoResponseDTO;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
+import com.solaria.persistence.dto.response.company.CompanyPhotoResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/CompanyPlansOpenApi.java b/src/main/java/com/solaria/persistence/openapi/company/CompanyPlansOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/CompanyPlansOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/company/CompanyPlansOpenApi.java
index 4f39688..f411e1c 100644
--- a/src/main/java/com/solaria/persistence/openapi/CompanyPlansOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/company/CompanyPlansOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.company;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.CompanyPlansRequestDTO;
-import com.solaria.persistence.dto.response.CompanyPlansResponseDTO;
+import com.solaria.persistence.dto.request.company.CompanyPlansRequestDTO;
+import com.solaria.persistence.dto.response.company.CompanyPlansResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/CompanyPositionsOpenApi.java b/src/main/java/com/solaria/persistence/openapi/company/CompanyPositionsOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/CompanyPositionsOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/company/CompanyPositionsOpenApi.java
index 051e6da..6e50291 100644
--- a/src/main/java/com/solaria/persistence/openapi/CompanyPositionsOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/company/CompanyPositionsOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.company;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.CompanyPositionsRequestDTO;
-import com.solaria.persistence.dto.response.CompanyPositionsResponseDTO;
+import com.solaria.persistence.dto.request.company.CompanyPositionsRequestDTO;
+import com.solaria.persistence.dto.response.company.CompanyPositionsResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/SubscriptionOpenApi.java b/src/main/java/com/solaria/persistence/openapi/company/SubscriptionOpenApi.java
similarity index 95%
rename from src/main/java/com/solaria/persistence/openapi/SubscriptionOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/company/SubscriptionOpenApi.java
index 5ba4793..a36bb29 100644
--- a/src/main/java/com/solaria/persistence/openapi/SubscriptionOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/company/SubscriptionOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.company;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.SubscriptionRequestDTO;
-import com.solaria.persistence.dto.response.SubscriptionResponseDTO;
+import com.solaria.persistence.dto.request.company.SubscriptionRequestDTO;
+import com.solaria.persistence.dto.response.company.SubscriptionResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/RequesterOpenApi.java b/src/main/java/com/solaria/persistence/openapi/execution/RequesterOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/RequesterOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/execution/RequesterOpenApi.java
index c5fb806..08ce999 100644
--- a/src/main/java/com/solaria/persistence/openapi/RequesterOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/execution/RequesterOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.execution;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.RequesterRequestDTO;
-import com.solaria.persistence.dto.response.RequesterResponseDTO;
+import com.solaria.persistence.dto.request.execution.RequesterRequestDTO;
+import com.solaria.persistence.dto.response.execution.RequesterResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ServiceContractOpenApi.java b/src/main/java/com/solaria/persistence/openapi/execution/ServiceContractOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/ServiceContractOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/execution/ServiceContractOpenApi.java
index 50412cb..e45db24 100644
--- a/src/main/java/com/solaria/persistence/openapi/ServiceContractOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/execution/ServiceContractOpenApi.java
@@ -1,11 +1,11 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.execution;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.ServiceContractRequestDTO;
-import com.solaria.persistence.dto.response.ServiceContractResponseDTO;
+import com.solaria.persistence.dto.request.execution.ServiceContractRequestDTO;
+import com.solaria.persistence.dto.response.execution.ServiceContractResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ServiceExecutorOpenApi.java b/src/main/java/com/solaria/persistence/openapi/execution/ServiceExecutorOpenApi.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/openapi/ServiceExecutorOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/execution/ServiceExecutorOpenApi.java
index 74b9376..57daf1c 100644
--- a/src/main/java/com/solaria/persistence/openapi/ServiceExecutorOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/execution/ServiceExecutorOpenApi.java
@@ -1,13 +1,13 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.execution;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.patch.UpdateFunctionDTO;
-import com.solaria.persistence.dto.request.ServiceExecutorRequestDTO;
-import com.solaria.persistence.dto.response.ServiceExecutorResponseDTO;
+import com.solaria.persistence.dto.patch.execution.UpdateFunctionDTO;
+import com.solaria.persistence.dto.request.execution.ServiceExecutorRequestDTO;
+import com.solaria.persistence.dto.response.execution.ServiceExecutorResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/TechnicalProjectOpenApi.java b/src/main/java/com/solaria/persistence/openapi/execution/TechnicalProjectOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/TechnicalProjectOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/execution/TechnicalProjectOpenApi.java
index f7928b9..aeae3cc 100644
--- a/src/main/java/com/solaria/persistence/openapi/TechnicalProjectOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/execution/TechnicalProjectOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.execution;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.TechnicalProjectRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalProjectResponseDTO;
+import com.solaria.persistence.dto.request.execution.TechnicalProjectRequestDTO;
+import com.solaria.persistence.dto.response.execution.TechnicalProjectResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/TechnicalServiceOpenApi.java b/src/main/java/com/solaria/persistence/openapi/execution/TechnicalServiceOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/TechnicalServiceOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/execution/TechnicalServiceOpenApi.java
index 6f59f21..f2c8245 100644
--- a/src/main/java/com/solaria/persistence/openapi/TechnicalServiceOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/execution/TechnicalServiceOpenApi.java
@@ -1,15 +1,15 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.execution;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.patch.ServiceAcceptanceDTO;
-import com.solaria.persistence.dto.patch.ServiceScheduleDTO;
-import com.solaria.persistence.dto.patch.UpdatePurposeDTO;
-import com.solaria.persistence.dto.request.TechnicalServiceRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalServiceResponseDTO;
+import com.solaria.persistence.dto.patch.execution.ServiceAcceptanceDTO;
+import com.solaria.persistence.dto.patch.execution.ServiceScheduleDTO;
+import com.solaria.persistence.dto.patch.execution.UpdatePurposeDTO;
+import com.solaria.persistence.dto.request.execution.TechnicalServiceRequestDTO;
+import com.solaria.persistence.dto.response.execution.TechnicalServiceResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/PermissionOpenApi.java b/src/main/java/com/solaria/persistence/openapi/identity/PermissionOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/PermissionOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/identity/PermissionOpenApi.java
index 254bc52..0cd8edc 100644
--- a/src/main/java/com/solaria/persistence/openapi/PermissionOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/identity/PermissionOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.identity;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.PermissionRequestDTO;
-import com.solaria.persistence.dto.response.PermissionResponseDTO;
+import com.solaria.persistence.dto.request.identity.PermissionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PermissionResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/PersonOpenApi.java b/src/main/java/com/solaria/persistence/openapi/identity/PersonOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/PersonOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/identity/PersonOpenApi.java
index c3afa48..3de091e 100644
--- a/src/main/java/com/solaria/persistence/openapi/PersonOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/identity/PersonOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.identity;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.PersonRequestDTO;
-import com.solaria.persistence.dto.response.PersonResponseDTO;
+import com.solaria.persistence.dto.request.identity.PersonRequestDTO;
+import com.solaria.persistence.dto.response.identity.PersonResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/PositionOpenApi.java b/src/main/java/com/solaria/persistence/openapi/identity/PositionOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/PositionOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/identity/PositionOpenApi.java
index 4d625d5..ab20057 100644
--- a/src/main/java/com/solaria/persistence/openapi/PositionOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/identity/PositionOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.identity;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.PositionRequestDTO;
-import com.solaria.persistence.dto.response.PositionResponseDTO;
+import com.solaria.persistence.dto.request.identity.PositionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PositionResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/PositionPermissionOpenApi.java b/src/main/java/com/solaria/persistence/openapi/identity/PositionPermissionOpenApi.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/openapi/PositionPermissionOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/identity/PositionPermissionOpenApi.java
index 3b5392b..076aaa5 100644
--- a/src/main/java/com/solaria/persistence/openapi/PositionPermissionOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/identity/PositionPermissionOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.identity;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.PositionPermissionRequestDTO;
-import com.solaria.persistence.dto.response.PositionPermissionResponseDTO;
+import com.solaria.persistence.dto.request.identity.PositionPermissionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PositionPermissionResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/UserCompanyOpenApi.java b/src/main/java/com/solaria/persistence/openapi/identity/UserCompanyOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/UserCompanyOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/identity/UserCompanyOpenApi.java
index 5b543e2..88cf225 100644
--- a/src/main/java/com/solaria/persistence/openapi/UserCompanyOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/identity/UserCompanyOpenApi.java
@@ -1,13 +1,13 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.identity;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.patch.UpdatePositionDTO;
-import com.solaria.persistence.dto.request.UserCompanyRequestDTO;
-import com.solaria.persistence.dto.response.UserCompanyResponseDTO;
+import com.solaria.persistence.dto.patch.identity.UpdatePositionDTO;
+import com.solaria.persistence.dto.request.identity.UserCompanyRequestDTO;
+import com.solaria.persistence.dto.response.identity.UserCompanyResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/UserOpenApi.java b/src/main/java/com/solaria/persistence/openapi/identity/UserOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/UserOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/identity/UserOpenApi.java
index 655d91c..838836f 100644
--- a/src/main/java/com/solaria/persistence/openapi/UserOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/identity/UserOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.identity;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.UserRequestDTO;
-import com.solaria.persistence.dto.response.UserResponseDTO;
+import com.solaria.persistence.dto.request.identity.UserRequestDTO;
+import com.solaria.persistence.dto.response.identity.UserResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/UserPhotoOpenApi.java b/src/main/java/com/solaria/persistence/openapi/identity/UserPhotoOpenApi.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/openapi/UserPhotoOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/identity/UserPhotoOpenApi.java
index 65d958c..ec5e355 100644
--- a/src/main/java/com/solaria/persistence/openapi/UserPhotoOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/identity/UserPhotoOpenApi.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.identity;
import java.util.List;
import java.util.UUID;
@@ -6,8 +6,8 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.domain.enums.PhotoType;
-import com.solaria.persistence.dto.response.UserPhotoResponseDTO;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
+import com.solaria.persistence.dto.response.identity.UserPhotoResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/CertificationOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/CertificationOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/CertificationOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/CertificationOpenApi.java
index d7adbcf..724d262 100644
--- a/src/main/java/com/solaria/persistence/openapi/CertificationOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/CertificationOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.CertificationRequestDTO;
-import com.solaria.persistence.dto.response.CertificationResponseDTO;
+import com.solaria.persistence.dto.request.professional.CertificationRequestDTO;
+import com.solaria.persistence.dto.response.professional.CertificationResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/CertificationRecordOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/CertificationRecordOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/CertificationRecordOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/CertificationRecordOpenApi.java
index ba6a94c..5db358f 100644
--- a/src/main/java/com/solaria/persistence/openapi/CertificationRecordOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/CertificationRecordOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.CertificationRecordRequestDTO;
-import com.solaria.persistence.dto.response.CertificationRecordResponseDTO;
+import com.solaria.persistence.dto.request.professional.CertificationRecordRequestDTO;
+import com.solaria.persistence.dto.response.professional.CertificationRecordResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ProfessionOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/ProfessionOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/ProfessionOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/ProfessionOpenApi.java
index 6705933..e4ce0bd 100644
--- a/src/main/java/com/solaria/persistence/openapi/ProfessionOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/ProfessionOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.ProfessionRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionResponseDTO;
+import com.solaria.persistence.dto.request.professional.ProfessionRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ProfessionalRegistrationOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/ProfessionalRegistrationOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/ProfessionalRegistrationOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/ProfessionalRegistrationOpenApi.java
index ad026c9..91475d1 100644
--- a/src/main/java/com/solaria/persistence/openapi/ProfessionalRegistrationOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/ProfessionalRegistrationOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.ProfessionalRegistrationRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionalRegistrationResponseDTO;
+import com.solaria.persistence.dto.request.professional.ProfessionalRegistrationRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionalRegistrationResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ProfessionalReviewOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/ProfessionalReviewOpenApi.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/openapi/ProfessionalReviewOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/ProfessionalReviewOpenApi.java
index 87190ab..df97458 100644
--- a/src/main/java/com/solaria/persistence/openapi/ProfessionalReviewOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/ProfessionalReviewOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.ProfessionalReviewRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionalReviewResponseDTO;
+import com.solaria.persistence.dto.request.professional.ProfessionalReviewRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionalReviewResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ShiftOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/ShiftOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/ShiftOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/ShiftOpenApi.java
index 133af62..a6eb08d 100644
--- a/src/main/java/com/solaria/persistence/openapi/ShiftOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/ShiftOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.ShiftRequestDTO;
-import com.solaria.persistence.dto.response.ShiftResponseDTO;
+import com.solaria.persistence.dto.request.professional.ShiftRequestDTO;
+import com.solaria.persistence.dto.response.professional.ShiftResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/TechnicalCourseOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/TechnicalCourseOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/TechnicalCourseOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/TechnicalCourseOpenApi.java
index 5976117..29974a5 100644
--- a/src/main/java/com/solaria/persistence/openapi/TechnicalCourseOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/TechnicalCourseOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.TechnicalCourseRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalCourseResponseDTO;
+import com.solaria.persistence.dto.request.professional.TechnicalCourseRequestDTO;
+import com.solaria.persistence.dto.response.professional.TechnicalCourseResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/TechnicianAffiliationOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/TechnicianAffiliationOpenApi.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/openapi/TechnicianAffiliationOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/TechnicianAffiliationOpenApi.java
index c81388f..b081d64 100644
--- a/src/main/java/com/solaria/persistence/openapi/TechnicianAffiliationOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/TechnicianAffiliationOpenApi.java
@@ -1,14 +1,14 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.patch.UpdateActiveDTO;
-import com.solaria.persistence.dto.patch.UpdateTypeDTO;
-import com.solaria.persistence.dto.request.TechnicianAffiliationRequestDTO;
-import com.solaria.persistence.dto.response.TechnicianAffiliationResponseDTO;
+import com.solaria.persistence.dto.patch.professional.UpdateActiveDTO;
+import com.solaria.persistence.dto.patch.professional.UpdateTypeDTO;
+import com.solaria.persistence.dto.request.professional.TechnicianAffiliationRequestDTO;
+import com.solaria.persistence.dto.response.professional.TechnicianAffiliationResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/TechnicianOpenApi.java b/src/main/java/com/solaria/persistence/openapi/professional/TechnicianOpenApi.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/openapi/TechnicianOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/professional/TechnicianOpenApi.java
index 4e92508..501b258 100644
--- a/src/main/java/com/solaria/persistence/openapi/TechnicianOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/professional/TechnicianOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.professional;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.TechnicianRequestDTO;
-import com.solaria.persistence.dto.response.TechnicianResponseDTO;
+import com.solaria.persistence.dto.request.professional.TechnicianRequestDTO;
+import com.solaria.persistence.dto.response.professional.TechnicianResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ProposalItemOpenApi.java b/src/main/java/com/solaria/persistence/openapi/proposal/ProposalItemOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/ProposalItemOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/proposal/ProposalItemOpenApi.java
index 243a22d..6ef7e3a 100644
--- a/src/main/java/com/solaria/persistence/openapi/ProposalItemOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/proposal/ProposalItemOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.proposal;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.ProposalItemRequestDTO;
-import com.solaria.persistence.dto.response.ProposalItemResponseDTO;
+import com.solaria.persistence.dto.request.proposal.ProposalItemRequestDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalItemResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ProposalOpenApi.java b/src/main/java/com/solaria/persistence/openapi/proposal/ProposalOpenApi.java
similarity index 96%
rename from src/main/java/com/solaria/persistence/openapi/ProposalOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/proposal/ProposalOpenApi.java
index dd60a30..8d6508f 100644
--- a/src/main/java/com/solaria/persistence/openapi/ProposalOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/proposal/ProposalOpenApi.java
@@ -1,13 +1,13 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.proposal;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.patch.UpdateNotesDTO;
-import com.solaria.persistence.dto.request.ProposalRequestDTO;
-import com.solaria.persistence.dto.response.ProposalResponseDTO;
+import com.solaria.persistence.dto.patch.proposal.UpdateNotesDTO;
+import com.solaria.persistence.dto.request.proposal.ProposalRequestDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ProposalUnitOpenApi.java b/src/main/java/com/solaria/persistence/openapi/proposal/ProposalUnitOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/ProposalUnitOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/proposal/ProposalUnitOpenApi.java
index f0e3cc1..081b0da 100644
--- a/src/main/java/com/solaria/persistence/openapi/ProposalUnitOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/proposal/ProposalUnitOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.proposal;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.ProposalUnitRequestDTO;
-import com.solaria.persistence.dto.response.ProposalUnitResponseDTO;
+import com.solaria.persistence.dto.request.proposal.ProposalUnitRequestDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalUnitResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/AddressOpenApi.java b/src/main/java/com/solaria/persistence/openapi/shared/AddressOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/AddressOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/shared/AddressOpenApi.java
index 81dbd89..9f50204 100644
--- a/src/main/java/com/solaria/persistence/openapi/AddressOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/shared/AddressOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.shared;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.AddressRequestDTO;
-import com.solaria.persistence.dto.response.AddressResponseDTO;
+import com.solaria.persistence.dto.request.shared.AddressRequestDTO;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/ContactOpenApi.java b/src/main/java/com/solaria/persistence/openapi/shared/ContactOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/ContactOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/shared/ContactOpenApi.java
index a92543c..f9db8ea 100644
--- a/src/main/java/com/solaria/persistence/openapi/ContactOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/shared/ContactOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.shared;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.ContactRequestDTO;
-import com.solaria.persistence.dto.response.ContactResponseDTO;
+import com.solaria.persistence.dto.request.shared.ContactRequestDTO;
+import com.solaria.persistence.dto.response.shared.ContactResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/FluxLogOpenApi.java b/src/main/java/com/solaria/persistence/openapi/shared/FluxLogOpenApi.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/openapi/FluxLogOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/shared/FluxLogOpenApi.java
index 37a5a4b..5923889 100644
--- a/src/main/java/com/solaria/persistence/openapi/FluxLogOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/shared/FluxLogOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.shared;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.FluxLogRequestDTO;
-import com.solaria.persistence.dto.response.FluxLogResponseDTO;
+import com.solaria.persistence.dto.request.shared.FluxLogRequestDTO;
+import com.solaria.persistence.dto.response.shared.FluxLogResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/GeolocalizationOpenApi.java b/src/main/java/com/solaria/persistence/openapi/shared/GeolocalizationOpenApi.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/openapi/GeolocalizationOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/shared/GeolocalizationOpenApi.java
index 8b29f2f..33ab5fb 100644
--- a/src/main/java/com/solaria/persistence/openapi/GeolocalizationOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/shared/GeolocalizationOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.shared;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.GeolocalizationRequestDTO;
-import com.solaria.persistence.dto.response.GeolocalizationResponseDTO;
+import com.solaria.persistence.dto.request.shared.GeolocalizationRequestDTO;
+import com.solaria.persistence.dto.response.shared.GeolocalizationResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/EnergyBillOpenApi.java b/src/main/java/com/solaria/persistence/openapi/unit/EnergyBillOpenApi.java
similarity index 94%
rename from src/main/java/com/solaria/persistence/openapi/EnergyBillOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/unit/EnergyBillOpenApi.java
index e5f74af..861631d 100644
--- a/src/main/java/com/solaria/persistence/openapi/EnergyBillOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/unit/EnergyBillOpenApi.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.unit;
import java.util.List;
import java.util.UUID;
@@ -6,8 +6,8 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.dto.request.EnergyBillRequestDTO;
-import com.solaria.persistence.dto.response.EnergyBillResponseDTO;
+import com.solaria.persistence.dto.request.unit.EnergyBillRequestDTO;
+import com.solaria.persistence.dto.response.unit.EnergyBillResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/LocalUnitOpenApi.java b/src/main/java/com/solaria/persistence/openapi/unit/LocalUnitOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/LocalUnitOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/unit/LocalUnitOpenApi.java
index da2531b..bc71636 100644
--- a/src/main/java/com/solaria/persistence/openapi/LocalUnitOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/unit/LocalUnitOpenApi.java
@@ -1,13 +1,13 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.unit;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.patch.UpdateLocalUnitAddressIdDTO;
-import com.solaria.persistence.dto.request.LocalUnitRequestDTO;
-import com.solaria.persistence.dto.response.LocalUnitResponseDTO;
+import com.solaria.persistence.dto.patch.unit.UpdateLocalUnitAddressIdDTO;
+import com.solaria.persistence.dto.request.unit.LocalUnitRequestDTO;
+import com.solaria.persistence.dto.response.unit.LocalUnitResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/LocalUnitPhotoOpenApi.java b/src/main/java/com/solaria/persistence/openapi/unit/LocalUnitPhotoOpenApi.java
similarity index 93%
rename from src/main/java/com/solaria/persistence/openapi/LocalUnitPhotoOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/unit/LocalUnitPhotoOpenApi.java
index e706772..69a22e8 100644
--- a/src/main/java/com/solaria/persistence/openapi/LocalUnitPhotoOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/unit/LocalUnitPhotoOpenApi.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.unit;
import java.util.List;
import java.util.UUID;
@@ -6,7 +6,7 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
-import com.solaria.persistence.dto.response.LocalUnitPhotoResponseDTO;
+import com.solaria.persistence.dto.response.unit.LocalUnitPhotoResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/openapi/UnitSpecificationsOpenApi.java b/src/main/java/com/solaria/persistence/openapi/unit/UnitSpecificationsOpenApi.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/openapi/UnitSpecificationsOpenApi.java
rename to src/main/java/com/solaria/persistence/openapi/unit/UnitSpecificationsOpenApi.java
index bc8b163..4a7808b 100644
--- a/src/main/java/com/solaria/persistence/openapi/UnitSpecificationsOpenApi.java
+++ b/src/main/java/com/solaria/persistence/openapi/unit/UnitSpecificationsOpenApi.java
@@ -1,12 +1,12 @@
-package com.solaria.persistence.openapi;
+package com.solaria.persistence.openapi.unit;
import java.util.List;
import java.util.UUID;
import org.springframework.http.ResponseEntity;
-import com.solaria.persistence.dto.request.UnitSpecificationsRequestDTO;
-import com.solaria.persistence.dto.response.UnitSpecificationsResponseDTO;
+import com.solaria.persistence.dto.request.unit.UnitSpecificationsRequestDTO;
+import com.solaria.persistence.dto.response.unit.UnitSpecificationsResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
diff --git a/src/main/java/com/solaria/persistence/repository/InventoryRepository.java b/src/main/java/com/solaria/persistence/repository/catalog/InventoryRepository.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/repository/InventoryRepository.java
rename to src/main/java/com/solaria/persistence/repository/catalog/InventoryRepository.java
index 1f3defa..88b4278 100644
--- a/src/main/java/com/solaria/persistence/repository/InventoryRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/catalog/InventoryRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.catalog;
-import com.solaria.persistence.domain.entity.Inventory;
+import com.solaria.persistence.domain.entity.catalog.Inventory;
import jakarta.persistence.LockModeType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Lock;
diff --git a/src/main/java/com/solaria/persistence/repository/ModelPhotoRepository.java b/src/main/java/com/solaria/persistence/repository/catalog/ModelPhotoRepository.java
similarity index 77%
rename from src/main/java/com/solaria/persistence/repository/ModelPhotoRepository.java
rename to src/main/java/com/solaria/persistence/repository/catalog/ModelPhotoRepository.java
index 842bfea..a9ba195 100644
--- a/src/main/java/com/solaria/persistence/repository/ModelPhotoRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/catalog/ModelPhotoRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.catalog;
-import com.solaria.persistence.domain.entity.ModelPhoto;
+import com.solaria.persistence.domain.entity.catalog.ModelPhoto;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/ModelRepository.java b/src/main/java/com/solaria/persistence/repository/catalog/ModelRepository.java
similarity index 57%
rename from src/main/java/com/solaria/persistence/repository/ModelRepository.java
rename to src/main/java/com/solaria/persistence/repository/catalog/ModelRepository.java
index fd0b62b..cfc6e5a 100644
--- a/src/main/java/com/solaria/persistence/repository/ModelRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/catalog/ModelRepository.java
@@ -1,7 +1,7 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.catalog;
-import com.solaria.persistence.domain.entity.Model;
-import com.solaria.persistence.domain.enums.ModelStatus;
+import com.solaria.persistence.domain.entity.catalog.Model;
+import com.solaria.persistence.domain.enums.catalog.ModelStatus;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/OfferRepository.java b/src/main/java/com/solaria/persistence/repository/catalog/OfferRepository.java
similarity index 84%
rename from src/main/java/com/solaria/persistence/repository/OfferRepository.java
rename to src/main/java/com/solaria/persistence/repository/catalog/OfferRepository.java
index ca7db10..eeb5e85 100644
--- a/src/main/java/com/solaria/persistence/repository/OfferRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/catalog/OfferRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.catalog;
-import com.solaria.persistence.domain.entity.Offer;
+import com.solaria.persistence.domain.entity.catalog.Offer;
import org.springframework.data.jpa.repository.JpaRepository;
import java.time.OffsetDateTime;
diff --git a/src/main/java/com/solaria/persistence/repository/OfferTranslationRepository.java b/src/main/java/com/solaria/persistence/repository/catalog/OfferTranslationRepository.java
similarity index 78%
rename from src/main/java/com/solaria/persistence/repository/OfferTranslationRepository.java
rename to src/main/java/com/solaria/persistence/repository/catalog/OfferTranslationRepository.java
index 3270c10..9ce1465 100644
--- a/src/main/java/com/solaria/persistence/repository/OfferTranslationRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/catalog/OfferTranslationRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.catalog;
-import com.solaria.persistence.domain.entity.OfferTranslation;
+import com.solaria.persistence.domain.entity.catalog.OfferTranslation;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/SupplierRepository.java b/src/main/java/com/solaria/persistence/repository/catalog/SupplierRepository.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/repository/SupplierRepository.java
rename to src/main/java/com/solaria/persistence/repository/catalog/SupplierRepository.java
index e8ed130..bc9cb04 100644
--- a/src/main/java/com/solaria/persistence/repository/SupplierRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/catalog/SupplierRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.catalog;
-import com.solaria.persistence.domain.entity.Supplier;
+import com.solaria.persistence.domain.entity.catalog.Supplier;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
diff --git a/src/main/java/com/solaria/persistence/repository/BusinessContactRepository.java b/src/main/java/com/solaria/persistence/repository/company/BusinessContactRepository.java
similarity index 59%
rename from src/main/java/com/solaria/persistence/repository/BusinessContactRepository.java
rename to src/main/java/com/solaria/persistence/repository/company/BusinessContactRepository.java
index cfe4f55..9b1f2ff 100644
--- a/src/main/java/com/solaria/persistence/repository/BusinessContactRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/company/BusinessContactRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.company;
-import com.solaria.persistence.domain.entity.BusinessContact;
+import com.solaria.persistence.domain.entity.company.BusinessContact;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/repository/ChargeRepository.java b/src/main/java/com/solaria/persistence/repository/company/ChargeRepository.java
similarity index 79%
rename from src/main/java/com/solaria/persistence/repository/ChargeRepository.java
rename to src/main/java/com/solaria/persistence/repository/company/ChargeRepository.java
index e6948d9..da4609b 100644
--- a/src/main/java/com/solaria/persistence/repository/ChargeRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/company/ChargeRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.company;
-import com.solaria.persistence.domain.entity.Charge;
+import com.solaria.persistence.domain.entity.company.Charge;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/CompanyPhotoRepository.java b/src/main/java/com/solaria/persistence/repository/company/CompanyPhotoRepository.java
similarity index 70%
rename from src/main/java/com/solaria/persistence/repository/CompanyPhotoRepository.java
rename to src/main/java/com/solaria/persistence/repository/company/CompanyPhotoRepository.java
index 7fdf0cb..e06ca6b 100644
--- a/src/main/java/com/solaria/persistence/repository/CompanyPhotoRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/company/CompanyPhotoRepository.java
@@ -1,7 +1,7 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.company;
-import com.solaria.persistence.domain.entity.CompanyPhoto;
-import com.solaria.persistence.domain.enums.PhotoType;
+import com.solaria.persistence.domain.entity.company.CompanyPhoto;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/CompanyPlansRepository.java b/src/main/java/com/solaria/persistence/repository/company/CompanyPlansRepository.java
similarity index 59%
rename from src/main/java/com/solaria/persistence/repository/CompanyPlansRepository.java
rename to src/main/java/com/solaria/persistence/repository/company/CompanyPlansRepository.java
index 2fd2fe2..665038f 100644
--- a/src/main/java/com/solaria/persistence/repository/CompanyPlansRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/company/CompanyPlansRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.company;
-import com.solaria.persistence.domain.entity.CompanyPlans;
+import com.solaria.persistence.domain.entity.company.CompanyPlans;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/repository/CompanyPositionsRepository.java b/src/main/java/com/solaria/persistence/repository/company/CompanyPositionsRepository.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/repository/CompanyPositionsRepository.java
rename to src/main/java/com/solaria/persistence/repository/company/CompanyPositionsRepository.java
index 9c280fd..8e4ee23 100644
--- a/src/main/java/com/solaria/persistence/repository/CompanyPositionsRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/company/CompanyPositionsRepository.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.company;
import java.util.List;
import java.util.Optional;
@@ -6,7 +6,7 @@
import org.springframework.data.jpa.repository.JpaRepository;
-import com.solaria.persistence.domain.entity.CompanyPositions;
+import com.solaria.persistence.domain.entity.company.CompanyPositions;
public interface CompanyPositionsRepository extends JpaRepository {
diff --git a/src/main/java/com/solaria/persistence/repository/CompanyRepository.java b/src/main/java/com/solaria/persistence/repository/company/CompanyRepository.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/repository/CompanyRepository.java
rename to src/main/java/com/solaria/persistence/repository/company/CompanyRepository.java
index 70a19ac..bd45b5a 100644
--- a/src/main/java/com/solaria/persistence/repository/CompanyRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/company/CompanyRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.company;
-import com.solaria.persistence.domain.entity.Company;
+import com.solaria.persistence.domain.entity.company.Company;
import org.springframework.data.jpa.repository.EntityGraph;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/com/solaria/persistence/repository/SubscriptionRepository.java b/src/main/java/com/solaria/persistence/repository/company/SubscriptionRepository.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/repository/SubscriptionRepository.java
rename to src/main/java/com/solaria/persistence/repository/company/SubscriptionRepository.java
index d74c75d..b8a7c7c 100644
--- a/src/main/java/com/solaria/persistence/repository/SubscriptionRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/company/SubscriptionRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.company;
-import com.solaria.persistence.domain.entity.Subscription;
+import com.solaria.persistence.domain.entity.company.Subscription;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
@@ -32,7 +32,7 @@ void callGenerateSubscriptionCharge(@Param("subscriptionId") UUID subscriptionId
boolean existsByPlanId(UUID planId);
@org.springframework.data.jpa.repository.Query("SELECT CASE WHEN COUNT(s) > 0 THEN true ELSE false END " +
- "FROM Subscription s WHERE s.supplier.id = :supplierId AND s.status = com.solaria.persistence.domain.enums.SubscriptionStatus.PAID " +
+ "FROM Subscription s WHERE s.supplier.id = :supplierId AND s.status = com.solaria.persistence.domain.enums.company.SubscriptionStatus.PAID " +
"AND (s.endDate IS NULL OR s.endDate > :now)")
boolean hasActiveSubscription(@Param("supplierId") UUID supplierId, @Param("now") OffsetDateTime now);
}
diff --git a/src/main/java/com/solaria/persistence/repository/RequesterRepository.java b/src/main/java/com/solaria/persistence/repository/execution/RequesterRepository.java
similarity index 76%
rename from src/main/java/com/solaria/persistence/repository/RequesterRepository.java
rename to src/main/java/com/solaria/persistence/repository/execution/RequesterRepository.java
index e39e613..4f3a892 100644
--- a/src/main/java/com/solaria/persistence/repository/RequesterRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/execution/RequesterRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.execution;
-import com.solaria.persistence.domain.entity.Requester;
+import com.solaria.persistence.domain.entity.execution.Requester;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/ServiceContractRepository.java b/src/main/java/com/solaria/persistence/repository/execution/ServiceContractRepository.java
similarity index 77%
rename from src/main/java/com/solaria/persistence/repository/ServiceContractRepository.java
rename to src/main/java/com/solaria/persistence/repository/execution/ServiceContractRepository.java
index 36ab47c..f9a609d 100644
--- a/src/main/java/com/solaria/persistence/repository/ServiceContractRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/execution/ServiceContractRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.execution;
-import com.solaria.persistence.domain.entity.ServiceContract;
+import com.solaria.persistence.domain.entity.execution.ServiceContract;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
diff --git a/src/main/java/com/solaria/persistence/repository/ServiceExecutorRepository.java b/src/main/java/com/solaria/persistence/repository/execution/ServiceExecutorRepository.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/repository/ServiceExecutorRepository.java
rename to src/main/java/com/solaria/persistence/repository/execution/ServiceExecutorRepository.java
index e6de5ca..f28a093 100644
--- a/src/main/java/com/solaria/persistence/repository/ServiceExecutorRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/execution/ServiceExecutorRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.execution;
-import com.solaria.persistence.domain.entity.ServiceExecutor;
+import com.solaria.persistence.domain.entity.execution.ServiceExecutor;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/TechnicalProjectRepository.java b/src/main/java/com/solaria/persistence/repository/execution/TechnicalProjectRepository.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/repository/TechnicalProjectRepository.java
rename to src/main/java/com/solaria/persistence/repository/execution/TechnicalProjectRepository.java
index f0fd666..2086beb 100644
--- a/src/main/java/com/solaria/persistence/repository/TechnicalProjectRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/execution/TechnicalProjectRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.execution;
-import com.solaria.persistence.domain.entity.TechnicalProject;
+import com.solaria.persistence.domain.entity.execution.TechnicalProject;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/TechnicalServiceRepository.java b/src/main/java/com/solaria/persistence/repository/execution/TechnicalServiceRepository.java
similarity index 77%
rename from src/main/java/com/solaria/persistence/repository/TechnicalServiceRepository.java
rename to src/main/java/com/solaria/persistence/repository/execution/TechnicalServiceRepository.java
index 5a41db7..f6aea79 100644
--- a/src/main/java/com/solaria/persistence/repository/TechnicalServiceRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/execution/TechnicalServiceRepository.java
@@ -1,7 +1,7 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.execution;
-import com.solaria.persistence.domain.entity.TechnicalService;
-import com.solaria.persistence.domain.enums.ServiceStatus;
+import com.solaria.persistence.domain.entity.execution.TechnicalService;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/PermissionRepository.java b/src/main/java/com/solaria/persistence/repository/identity/PermissionRepository.java
similarity index 72%
rename from src/main/java/com/solaria/persistence/repository/PermissionRepository.java
rename to src/main/java/com/solaria/persistence/repository/identity/PermissionRepository.java
index 0b9e385..1204ef6 100644
--- a/src/main/java/com/solaria/persistence/repository/PermissionRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/identity/PermissionRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.identity;
-import com.solaria.persistence.domain.entity.Permission;
+import com.solaria.persistence.domain.entity.identity.Permission;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/repository/PersonRepository.java b/src/main/java/com/solaria/persistence/repository/identity/PersonRepository.java
similarity index 75%
rename from src/main/java/com/solaria/persistence/repository/PersonRepository.java
rename to src/main/java/com/solaria/persistence/repository/identity/PersonRepository.java
index b9fb04e..6ea8094 100644
--- a/src/main/java/com/solaria/persistence/repository/PersonRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/identity/PersonRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.identity;
-import com.solaria.persistence.domain.entity.Person;
+import com.solaria.persistence.domain.entity.identity.Person;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/repository/PositionPermissionRepository.java b/src/main/java/com/solaria/persistence/repository/identity/PositionPermissionRepository.java
similarity index 81%
rename from src/main/java/com/solaria/persistence/repository/PositionPermissionRepository.java
rename to src/main/java/com/solaria/persistence/repository/identity/PositionPermissionRepository.java
index 36ada02..2e4add2 100644
--- a/src/main/java/com/solaria/persistence/repository/PositionPermissionRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/identity/PositionPermissionRepository.java
@@ -1,11 +1,11 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.identity;
import java.util.List;
import java.util.UUID;
import org.springframework.data.jpa.repository.JpaRepository;
-import com.solaria.persistence.domain.entity.PositionPermission;
+import com.solaria.persistence.domain.entity.identity.PositionPermission;
public interface PositionPermissionRepository extends JpaRepository {
diff --git a/src/main/java/com/solaria/persistence/repository/PositionRepository.java b/src/main/java/com/solaria/persistence/repository/identity/PositionRepository.java
similarity index 58%
rename from src/main/java/com/solaria/persistence/repository/PositionRepository.java
rename to src/main/java/com/solaria/persistence/repository/identity/PositionRepository.java
index b73782b..c7f5044 100644
--- a/src/main/java/com/solaria/persistence/repository/PositionRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/identity/PositionRepository.java
@@ -1,10 +1,10 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.identity;
import java.util.UUID;
import org.springframework.data.jpa.repository.JpaRepository;
-import com.solaria.persistence.domain.entity.Position;
+import com.solaria.persistence.domain.entity.identity.Position;
public interface PositionRepository extends JpaRepository {
diff --git a/src/main/java/com/solaria/persistence/repository/UserCompanyRepository.java b/src/main/java/com/solaria/persistence/repository/identity/UserCompanyRepository.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/repository/UserCompanyRepository.java
rename to src/main/java/com/solaria/persistence/repository/identity/UserCompanyRepository.java
index 233bc44..921932c 100644
--- a/src/main/java/com/solaria/persistence/repository/UserCompanyRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/identity/UserCompanyRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.identity;
-import com.solaria.persistence.domain.entity.UserCompany;
+import com.solaria.persistence.domain.entity.identity.UserCompany;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/UserPhotoRepository.java b/src/main/java/com/solaria/persistence/repository/identity/UserPhotoRepository.java
similarity index 68%
rename from src/main/java/com/solaria/persistence/repository/UserPhotoRepository.java
rename to src/main/java/com/solaria/persistence/repository/identity/UserPhotoRepository.java
index ac22237..47f59c4 100644
--- a/src/main/java/com/solaria/persistence/repository/UserPhotoRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/identity/UserPhotoRepository.java
@@ -1,7 +1,7 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.identity;
-import com.solaria.persistence.domain.entity.UserPhoto;
-import com.solaria.persistence.domain.enums.PhotoType;
+import com.solaria.persistence.domain.entity.identity.UserPhoto;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/UserRepository.java b/src/main/java/com/solaria/persistence/repository/identity/UserRepository.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/repository/UserRepository.java
rename to src/main/java/com/solaria/persistence/repository/identity/UserRepository.java
index 00f2052..5e40a19 100644
--- a/src/main/java/com/solaria/persistence/repository/UserRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/identity/UserRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.identity;
-import com.solaria.persistence.domain.entity.User;
+import com.solaria.persistence.domain.entity.identity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
diff --git a/src/main/java/com/solaria/persistence/repository/CertificationRecordRepository.java b/src/main/java/com/solaria/persistence/repository/professional/CertificationRecordRepository.java
similarity index 76%
rename from src/main/java/com/solaria/persistence/repository/CertificationRecordRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/CertificationRecordRepository.java
index 49a082b..e04766a 100644
--- a/src/main/java/com/solaria/persistence/repository/CertificationRecordRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/CertificationRecordRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.CertificationRecord;
+import com.solaria.persistence.domain.entity.professional.CertificationRecord;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/CertificationRepository.java b/src/main/java/com/solaria/persistence/repository/professional/CertificationRepository.java
similarity index 57%
rename from src/main/java/com/solaria/persistence/repository/CertificationRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/CertificationRepository.java
index bf6fded..353ec17 100644
--- a/src/main/java/com/solaria/persistence/repository/CertificationRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/CertificationRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.Certification;
+import com.solaria.persistence.domain.entity.professional.Certification;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/repository/ProfessionRepository.java b/src/main/java/com/solaria/persistence/repository/professional/ProfessionRepository.java
similarity index 57%
rename from src/main/java/com/solaria/persistence/repository/ProfessionRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/ProfessionRepository.java
index 52668a2..c2f99a8 100644
--- a/src/main/java/com/solaria/persistence/repository/ProfessionRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/ProfessionRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.Profession;
+import com.solaria.persistence.domain.entity.professional.Profession;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/repository/ProfessionalRegistrationRepository.java b/src/main/java/com/solaria/persistence/repository/professional/ProfessionalRegistrationRepository.java
similarity index 71%
rename from src/main/java/com/solaria/persistence/repository/ProfessionalRegistrationRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/ProfessionalRegistrationRepository.java
index 6100e08..20270f4 100644
--- a/src/main/java/com/solaria/persistence/repository/ProfessionalRegistrationRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/ProfessionalRegistrationRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.ProfessionalRegistration;
+import com.solaria.persistence.domain.entity.professional.ProfessionalRegistration;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/ProfessionalReviewRepository.java b/src/main/java/com/solaria/persistence/repository/professional/ProfessionalReviewRepository.java
similarity index 75%
rename from src/main/java/com/solaria/persistence/repository/ProfessionalReviewRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/ProfessionalReviewRepository.java
index c9776ba..413e70f 100644
--- a/src/main/java/com/solaria/persistence/repository/ProfessionalReviewRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/ProfessionalReviewRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.ProfessionalReview;
+import com.solaria.persistence.domain.entity.professional.ProfessionalReview;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/ShiftRepository.java b/src/main/java/com/solaria/persistence/repository/professional/ShiftRepository.java
similarity index 66%
rename from src/main/java/com/solaria/persistence/repository/ShiftRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/ShiftRepository.java
index 91809a8..ca5ef6a 100644
--- a/src/main/java/com/solaria/persistence/repository/ShiftRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/ShiftRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.Shift;
+import com.solaria.persistence.domain.entity.professional.Shift;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/TechnicalCourseRepository.java b/src/main/java/com/solaria/persistence/repository/professional/TechnicalCourseRepository.java
similarity index 73%
rename from src/main/java/com/solaria/persistence/repository/TechnicalCourseRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/TechnicalCourseRepository.java
index 2ffcc0a..895847e 100644
--- a/src/main/java/com/solaria/persistence/repository/TechnicalCourseRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/TechnicalCourseRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.TechnicalCourse;
+import com.solaria.persistence.domain.entity.professional.TechnicalCourse;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/TechnicianAffiliationRepository.java b/src/main/java/com/solaria/persistence/repository/professional/TechnicianAffiliationRepository.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/repository/TechnicianAffiliationRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/TechnicianAffiliationRepository.java
index 3db7242..0d696f3 100644
--- a/src/main/java/com/solaria/persistence/repository/TechnicianAffiliationRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/TechnicianAffiliationRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.TechnicianAffiliation;
+import com.solaria.persistence.domain.entity.professional.TechnicianAffiliation;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/TechnicianRepository.java b/src/main/java/com/solaria/persistence/repository/professional/TechnicianRepository.java
similarity index 72%
rename from src/main/java/com/solaria/persistence/repository/TechnicianRepository.java
rename to src/main/java/com/solaria/persistence/repository/professional/TechnicianRepository.java
index 84b54fb..81f4f52 100644
--- a/src/main/java/com/solaria/persistence/repository/TechnicianRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/professional/TechnicianRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.professional;
-import com.solaria.persistence.domain.entity.Technician;
+import com.solaria.persistence.domain.entity.professional.Technician;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
diff --git a/src/main/java/com/solaria/persistence/repository/ProposalItemRepository.java b/src/main/java/com/solaria/persistence/repository/proposal/ProposalItemRepository.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/repository/ProposalItemRepository.java
rename to src/main/java/com/solaria/persistence/repository/proposal/ProposalItemRepository.java
index 8458aad..e0af121 100644
--- a/src/main/java/com/solaria/persistence/repository/ProposalItemRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/proposal/ProposalItemRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.proposal;
-import com.solaria.persistence.domain.entity.ProposalItem;
+import com.solaria.persistence.domain.entity.proposal.ProposalItem;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
diff --git a/src/main/java/com/solaria/persistence/repository/ProposalRepository.java b/src/main/java/com/solaria/persistence/repository/proposal/ProposalRepository.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/repository/ProposalRepository.java
rename to src/main/java/com/solaria/persistence/repository/proposal/ProposalRepository.java
index 056b9b9..77280bb 100644
--- a/src/main/java/com/solaria/persistence/repository/ProposalRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/proposal/ProposalRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.proposal;
-import com.solaria.persistence.domain.entity.Proposal;
+import com.solaria.persistence.domain.entity.proposal.Proposal;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/ProposalUnitRepository.java b/src/main/java/com/solaria/persistence/repository/proposal/ProposalUnitRepository.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/repository/ProposalUnitRepository.java
rename to src/main/java/com/solaria/persistence/repository/proposal/ProposalUnitRepository.java
index 63a2cf7..fc66cca 100644
--- a/src/main/java/com/solaria/persistence/repository/ProposalUnitRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/proposal/ProposalUnitRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.proposal;
-import com.solaria.persistence.domain.entity.ProposalUnit;
+import com.solaria.persistence.domain.entity.proposal.ProposalUnit;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
diff --git a/src/main/java/com/solaria/persistence/repository/AddressRepository.java b/src/main/java/com/solaria/persistence/repository/shared/AddressRepository.java
similarity index 59%
rename from src/main/java/com/solaria/persistence/repository/AddressRepository.java
rename to src/main/java/com/solaria/persistence/repository/shared/AddressRepository.java
index bc93b67..79e4ccc 100644
--- a/src/main/java/com/solaria/persistence/repository/AddressRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/shared/AddressRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.shared;
-import com.solaria.persistence.domain.entity.Address;
+import com.solaria.persistence.domain.entity.shared.Address;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/repository/ContactRepository.java b/src/main/java/com/solaria/persistence/repository/shared/ContactRepository.java
similarity index 59%
rename from src/main/java/com/solaria/persistence/repository/ContactRepository.java
rename to src/main/java/com/solaria/persistence/repository/shared/ContactRepository.java
index 1db5488..b899ea2 100644
--- a/src/main/java/com/solaria/persistence/repository/ContactRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/shared/ContactRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.shared;
-import com.solaria.persistence.domain.entity.Contact;
+import com.solaria.persistence.domain.entity.shared.Contact;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/solaria/persistence/repository/FluxLogRepository.java b/src/main/java/com/solaria/persistence/repository/shared/FluxLogRepository.java
similarity index 69%
rename from src/main/java/com/solaria/persistence/repository/FluxLogRepository.java
rename to src/main/java/com/solaria/persistence/repository/shared/FluxLogRepository.java
index f5c1f4c..392884f 100644
--- a/src/main/java/com/solaria/persistence/repository/FluxLogRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/shared/FluxLogRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.shared;
-import com.solaria.persistence.domain.entity.FluxLog;
+import com.solaria.persistence.domain.entity.shared.FluxLog;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/GeolocalizationRepository.java b/src/main/java/com/solaria/persistence/repository/shared/GeolocalizationRepository.java
similarity index 72%
rename from src/main/java/com/solaria/persistence/repository/GeolocalizationRepository.java
rename to src/main/java/com/solaria/persistence/repository/shared/GeolocalizationRepository.java
index 5331674..8019232 100644
--- a/src/main/java/com/solaria/persistence/repository/GeolocalizationRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/shared/GeolocalizationRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.shared;
-import com.solaria.persistence.domain.entity.Geolocalization;
+import com.solaria.persistence.domain.entity.shared.Geolocalization;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/specification/SupplierSpecification.java b/src/main/java/com/solaria/persistence/repository/specification/catalog/SupplierSpecification.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/repository/specification/SupplierSpecification.java
rename to src/main/java/com/solaria/persistence/repository/specification/catalog/SupplierSpecification.java
index c6d8303..f839745 100644
--- a/src/main/java/com/solaria/persistence/repository/specification/SupplierSpecification.java
+++ b/src/main/java/com/solaria/persistence/repository/specification/catalog/SupplierSpecification.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.repository.specification;
+package com.solaria.persistence.repository.specification.catalog;
import java.util.ArrayList;
import java.util.List;
@@ -6,10 +6,10 @@
import org.springframework.data.jpa.domain.Specification;
-import com.solaria.persistence.domain.entity.Address;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.entity.Supplier;
-import com.solaria.persistence.dto.request.SupplierSearchFilterDTO;
+import com.solaria.persistence.domain.entity.shared.Address;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.entity.catalog.Supplier;
+import com.solaria.persistence.dto.request.catalog.SupplierSearchFilterDTO;
import jakarta.persistence.criteria.Join;
import jakarta.persistence.criteria.JoinType;
diff --git a/src/main/java/com/solaria/persistence/repository/EnergyBillRepository.java b/src/main/java/com/solaria/persistence/repository/unit/EnergyBillRepository.java
similarity index 79%
rename from src/main/java/com/solaria/persistence/repository/EnergyBillRepository.java
rename to src/main/java/com/solaria/persistence/repository/unit/EnergyBillRepository.java
index cffe7bd..505042e 100644
--- a/src/main/java/com/solaria/persistence/repository/EnergyBillRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/unit/EnergyBillRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.unit;
-import com.solaria.persistence.domain.entity.EnergyBill;
+import com.solaria.persistence.domain.entity.unit.EnergyBill;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/LocalUnitPhotoRepository.java b/src/main/java/com/solaria/persistence/repository/unit/LocalUnitPhotoRepository.java
similarity index 79%
rename from src/main/java/com/solaria/persistence/repository/LocalUnitPhotoRepository.java
rename to src/main/java/com/solaria/persistence/repository/unit/LocalUnitPhotoRepository.java
index 3232f91..9f6fcc8 100644
--- a/src/main/java/com/solaria/persistence/repository/LocalUnitPhotoRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/unit/LocalUnitPhotoRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.unit;
-import com.solaria.persistence.domain.entity.LocalUnitPhoto;
+import com.solaria.persistence.domain.entity.unit.LocalUnitPhoto;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/LocalUnitRepository.java b/src/main/java/com/solaria/persistence/repository/unit/LocalUnitRepository.java
similarity index 82%
rename from src/main/java/com/solaria/persistence/repository/LocalUnitRepository.java
rename to src/main/java/com/solaria/persistence/repository/unit/LocalUnitRepository.java
index 8d7ab3b..273e980 100644
--- a/src/main/java/com/solaria/persistence/repository/LocalUnitRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/unit/LocalUnitRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.unit;
-import com.solaria.persistence.domain.entity.LocalUnit;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/repository/UnitSpecificationsRepository.java b/src/main/java/com/solaria/persistence/repository/unit/UnitSpecificationsRepository.java
similarity index 79%
rename from src/main/java/com/solaria/persistence/repository/UnitSpecificationsRepository.java
rename to src/main/java/com/solaria/persistence/repository/unit/UnitSpecificationsRepository.java
index 3353e9a..a8112ac 100644
--- a/src/main/java/com/solaria/persistence/repository/UnitSpecificationsRepository.java
+++ b/src/main/java/com/solaria/persistence/repository/unit/UnitSpecificationsRepository.java
@@ -1,6 +1,6 @@
-package com.solaria.persistence.repository;
+package com.solaria.persistence.repository.unit;
-import com.solaria.persistence.domain.entity.UnitSpecifications;
+import com.solaria.persistence.domain.entity.unit.UnitSpecifications;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/src/main/java/com/solaria/persistence/security/rbac/RbacAuthorizationService.java b/src/main/java/com/solaria/persistence/security/rbac/RbacAuthorizationService.java
index 64c79ad..c03e291 100644
--- a/src/main/java/com/solaria/persistence/security/rbac/RbacAuthorizationService.java
+++ b/src/main/java/com/solaria/persistence/security/rbac/RbacAuthorizationService.java
@@ -10,13 +10,13 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Position;
-import com.solaria.persistence.domain.entity.User;
-import com.solaria.persistence.domain.entity.UserCompany;
+import com.solaria.persistence.domain.entity.identity.Position;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.domain.entity.identity.UserCompany;
import com.solaria.persistence.exception.UnauthorizedAccessException;
-import com.solaria.persistence.repository.PositionPermissionRepository;
-import com.solaria.persistence.repository.UserCompanyRepository;
-import com.solaria.persistence.repository.UserRepository;
+import com.solaria.persistence.repository.identity.PositionPermissionRepository;
+import com.solaria.persistence.repository.identity.UserCompanyRepository;
+import com.solaria.persistence.repository.identity.UserRepository;
/**
* Resolve a autorização do usuário, em 2 camadas:
diff --git a/src/main/java/com/solaria/persistence/service/GoogleTranslateService.java b/src/main/java/com/solaria/persistence/service/catalog/GoogleTranslateService.java
similarity index 98%
rename from src/main/java/com/solaria/persistence/service/GoogleTranslateService.java
rename to src/main/java/com/solaria/persistence/service/catalog/GoogleTranslateService.java
index 541c262..68d6d16 100644
--- a/src/main/java/com/solaria/persistence/service/GoogleTranslateService.java
+++ b/src/main/java/com/solaria/persistence/service/catalog/GoogleTranslateService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.catalog;
import java.util.List;
import java.util.Map;
diff --git a/src/main/java/com/solaria/persistence/service/InventoryService.java b/src/main/java/com/solaria/persistence/service/catalog/InventoryService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/InventoryService.java
rename to src/main/java/com/solaria/persistence/service/catalog/InventoryService.java
index 5ab63ff..25d8772 100644
--- a/src/main/java/com/solaria/persistence/service/InventoryService.java
+++ b/src/main/java/com/solaria/persistence/service/catalog/InventoryService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.catalog;
import java.util.List;
import java.util.UUID;
@@ -6,20 +6,21 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Inventory;
-import com.solaria.persistence.domain.entity.Model;
-import com.solaria.persistence.domain.entity.Supplier;
-import com.solaria.persistence.domain.enums.SupplierStatus;
-import com.solaria.persistence.dto.request.InventoryRequestDTO;
-import com.solaria.persistence.dto.response.InventoryResponseDTO;
-import com.solaria.persistence.dto.response.ModelResponseDTO;
+import com.solaria.persistence.domain.entity.catalog.Inventory;
+import com.solaria.persistence.domain.entity.catalog.Model;
+import com.solaria.persistence.domain.entity.catalog.Supplier;
+import com.solaria.persistence.domain.enums.catalog.SupplierStatus;
+import com.solaria.persistence.dto.request.catalog.InventoryRequestDTO;
+import com.solaria.persistence.dto.response.catalog.InventoryResponseDTO;
+import com.solaria.persistence.dto.response.catalog.ModelResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.InventoryRepository;
-import com.solaria.persistence.repository.ModelRepository;
-import com.solaria.persistence.repository.SupplierRepository;
+import com.solaria.persistence.repository.catalog.InventoryRepository;
+import com.solaria.persistence.repository.catalog.ModelRepository;
+import com.solaria.persistence.repository.catalog.SupplierRepository;
+import com.solaria.persistence.service.company.SubscriptionService;
@Service
public class InventoryService {
diff --git a/src/main/java/com/solaria/persistence/service/ModelPhotoService.java b/src/main/java/com/solaria/persistence/service/catalog/ModelPhotoService.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/service/ModelPhotoService.java
rename to src/main/java/com/solaria/persistence/service/catalog/ModelPhotoService.java
index b4bfa27..a123326 100644
--- a/src/main/java/com/solaria/persistence/service/ModelPhotoService.java
+++ b/src/main/java/com/solaria/persistence/service/catalog/ModelPhotoService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.catalog;
import java.time.OffsetDateTime;
import java.util.List;
@@ -10,13 +10,14 @@
import org.springframework.web.multipart.MultipartFile;
import com.solaria.persistence.config.CloudinaryProperties;
-import com.solaria.persistence.domain.entity.Model;
-import com.solaria.persistence.domain.entity.ModelPhoto;
-import com.solaria.persistence.dto.response.ModelPhotoResponseDTO;
+import com.solaria.persistence.domain.entity.catalog.Model;
+import com.solaria.persistence.domain.entity.catalog.ModelPhoto;
+import com.solaria.persistence.dto.response.catalog.ModelPhotoResponseDTO;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ModelPhotoRepository;
-import com.solaria.persistence.repository.ModelRepository;
-import com.solaria.persistence.service.CloudinaryService.UploadResult;
+import com.solaria.persistence.repository.catalog.ModelPhotoRepository;
+import com.solaria.persistence.repository.catalog.ModelRepository;
+import com.solaria.persistence.service.shared.CloudinaryService.UploadResult;
+import com.solaria.persistence.service.shared.CloudinaryService;
@Service
public class ModelPhotoService {
diff --git a/src/main/java/com/solaria/persistence/service/ModelService.java b/src/main/java/com/solaria/persistence/service/catalog/ModelService.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/service/ModelService.java
rename to src/main/java/com/solaria/persistence/service/catalog/ModelService.java
index 285776f..48d9596 100644
--- a/src/main/java/com/solaria/persistence/service/ModelService.java
+++ b/src/main/java/com/solaria/persistence/service/catalog/ModelService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.catalog;
import java.math.BigDecimal;
import java.util.List;
@@ -9,18 +9,18 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.Model;
-import com.solaria.persistence.domain.enums.ModelStatus;
-import com.solaria.persistence.dto.request.ModelRequestDTO;
-import com.solaria.persistence.dto.response.ModelResponseDTO;
+import com.solaria.persistence.domain.entity.catalog.Model;
+import com.solaria.persistence.domain.enums.catalog.ModelStatus;
+import com.solaria.persistence.dto.request.catalog.ModelRequestDTO;
+import com.solaria.persistence.dto.response.catalog.ModelResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.InventoryRepository;
-import com.solaria.persistence.repository.ModelPhotoRepository;
-import com.solaria.persistence.repository.ModelRepository;
-import com.solaria.persistence.repository.OfferRepository;
+import com.solaria.persistence.repository.catalog.InventoryRepository;
+import com.solaria.persistence.repository.catalog.ModelPhotoRepository;
+import com.solaria.persistence.repository.catalog.ModelRepository;
+import com.solaria.persistence.repository.catalog.OfferRepository;
@Service
public class ModelService {
diff --git a/src/main/java/com/solaria/persistence/service/OfferService.java b/src/main/java/com/solaria/persistence/service/catalog/OfferService.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/service/OfferService.java
rename to src/main/java/com/solaria/persistence/service/catalog/OfferService.java
index 0ed40e7..fa7f6dd 100644
--- a/src/main/java/com/solaria/persistence/service/OfferService.java
+++ b/src/main/java/com/solaria/persistence/service/catalog/OfferService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.catalog;
import java.math.BigDecimal;
import java.time.OffsetDateTime;
@@ -10,27 +10,28 @@
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
-import com.solaria.persistence.domain.entity.Model;
-import com.solaria.persistence.domain.entity.Offer;
-import com.solaria.persistence.domain.entity.OfferTranslation;
-import com.solaria.persistence.domain.entity.Supplier;
-import com.solaria.persistence.domain.enums.ModelStatus;
-import com.solaria.persistence.domain.enums.SupplierStatus;
-import com.solaria.persistence.domain.enums.TranslationStatus;
-import com.solaria.persistence.dto.request.OfferRequestDTO;
-import com.solaria.persistence.dto.response.ModelResponseDTO;
-import com.solaria.persistence.dto.response.OfferResponseDTO;
-import com.solaria.persistence.dto.response.OfferTranslationResponseDTO;
+import com.solaria.persistence.domain.entity.catalog.Model;
+import com.solaria.persistence.domain.entity.catalog.Offer;
+import com.solaria.persistence.domain.entity.catalog.OfferTranslation;
+import com.solaria.persistence.domain.entity.catalog.Supplier;
+import com.solaria.persistence.domain.enums.catalog.ModelStatus;
+import com.solaria.persistence.domain.enums.catalog.SupplierStatus;
+import com.solaria.persistence.domain.enums.catalog.TranslationStatus;
+import com.solaria.persistence.dto.request.catalog.OfferRequestDTO;
+import com.solaria.persistence.dto.response.catalog.ModelResponseDTO;
+import com.solaria.persistence.dto.response.catalog.OfferResponseDTO;
+import com.solaria.persistence.dto.response.catalog.OfferTranslationResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ModelRepository;
-import com.solaria.persistence.repository.OfferRepository;
-import com.solaria.persistence.repository.OfferTranslationRepository;
-import com.solaria.persistence.repository.ProposalItemRepository;
-import com.solaria.persistence.repository.SupplierRepository;
+import com.solaria.persistence.repository.catalog.ModelRepository;
+import com.solaria.persistence.repository.catalog.OfferRepository;
+import com.solaria.persistence.repository.catalog.OfferTranslationRepository;
+import com.solaria.persistence.repository.proposal.ProposalItemRepository;
+import com.solaria.persistence.repository.catalog.SupplierRepository;
import com.solaria.persistence.util.SlugUtil;
+import com.solaria.persistence.service.company.SubscriptionService;
@Service
public class OfferService {
diff --git a/src/main/java/com/solaria/persistence/service/OfferTranslationService.java b/src/main/java/com/solaria/persistence/service/catalog/OfferTranslationService.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/service/OfferTranslationService.java
rename to src/main/java/com/solaria/persistence/service/catalog/OfferTranslationService.java
index c70d68b..cbe2081 100644
--- a/src/main/java/com/solaria/persistence/service/OfferTranslationService.java
+++ b/src/main/java/com/solaria/persistence/service/catalog/OfferTranslationService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.catalog;
import java.util.ArrayList;
import java.util.List;
@@ -10,11 +10,11 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Offer;
-import com.solaria.persistence.domain.entity.OfferTranslation;
-import com.solaria.persistence.domain.enums.TranslationStatus;
-import com.solaria.persistence.repository.OfferRepository;
-import com.solaria.persistence.repository.OfferTranslationRepository;
+import com.solaria.persistence.domain.entity.catalog.Offer;
+import com.solaria.persistence.domain.entity.catalog.OfferTranslation;
+import com.solaria.persistence.domain.enums.catalog.TranslationStatus;
+import com.solaria.persistence.repository.catalog.OfferRepository;
+import com.solaria.persistence.repository.catalog.OfferTranslationRepository;
import com.solaria.persistence.util.SupportedLocales;
/**
diff --git a/src/main/java/com/solaria/persistence/service/SupplierCacheService.java b/src/main/java/com/solaria/persistence/service/catalog/SupplierCacheService.java
similarity index 95%
rename from src/main/java/com/solaria/persistence/service/SupplierCacheService.java
rename to src/main/java/com/solaria/persistence/service/catalog/SupplierCacheService.java
index b756dc9..9e78cd6 100644
--- a/src/main/java/com/solaria/persistence/service/SupplierCacheService.java
+++ b/src/main/java/com/solaria/persistence/service/catalog/SupplierCacheService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.catalog;
import java.time.Duration;
import java.util.Optional;
@@ -11,8 +11,8 @@
import org.springframework.stereotype.Service;
import com.solaria.persistence.config.RedisProperties;
-import com.solaria.persistence.dto.request.SupplierSearchFilterDTO;
-import com.solaria.persistence.dto.response.SupplierSearchResponseDTO;
+import com.solaria.persistence.dto.request.catalog.SupplierSearchFilterDTO;
+import com.solaria.persistence.dto.response.catalog.SupplierSearchResponseDTO;
import com.solaria.persistence.util.CacheKeyGenerator;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/SupplierService.java b/src/main/java/com/solaria/persistence/service/catalog/SupplierService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/SupplierService.java
rename to src/main/java/com/solaria/persistence/service/catalog/SupplierService.java
index 8486d53..7f74022 100644
--- a/src/main/java/com/solaria/persistence/service/SupplierService.java
+++ b/src/main/java/com/solaria/persistence/service/catalog/SupplierService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.catalog;
import java.util.List;
import java.util.Map;
@@ -12,26 +12,26 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.dto.request.SupplierSearchFilterDTO;
-import com.solaria.persistence.dto.response.AddressResponseDTO;
-import com.solaria.persistence.dto.response.BusinessContactResponseDTO;
-import com.solaria.persistence.dto.response.CompanyResponseDTO;
-import com.solaria.persistence.dto.request.SupplierRequestDTO;
-import com.solaria.persistence.dto.response.SupplierResponseDTO;
-import com.solaria.persistence.dto.response.SupplierSearchResponseDTO;
-import com.solaria.persistence.domain.entity.Address;
-import com.solaria.persistence.domain.entity.BusinessContact;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.entity.Supplier;
-import com.solaria.persistence.domain.enums.CompanyStatus;
-import com.solaria.persistence.domain.enums.SupplierStatus;
+import com.solaria.persistence.dto.request.catalog.SupplierSearchFilterDTO;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
+import com.solaria.persistence.dto.response.company.BusinessContactResponseDTO;
+import com.solaria.persistence.dto.response.company.CompanyResponseDTO;
+import com.solaria.persistence.dto.request.catalog.SupplierRequestDTO;
+import com.solaria.persistence.dto.response.catalog.SupplierResponseDTO;
+import com.solaria.persistence.dto.response.catalog.SupplierSearchResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Address;
+import com.solaria.persistence.domain.entity.company.BusinessContact;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.entity.catalog.Supplier;
+import com.solaria.persistence.domain.enums.company.CompanyStatus;
+import com.solaria.persistence.domain.enums.catalog.SupplierStatus;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CompanyRepository;
-import com.solaria.persistence.repository.RequesterRepository;
-import com.solaria.persistence.repository.SupplierRepository;
-import com.solaria.persistence.repository.specification.SupplierSpecification;
+import com.solaria.persistence.repository.company.CompanyRepository;
+import com.solaria.persistence.repository.execution.RequesterRepository;
+import com.solaria.persistence.repository.catalog.SupplierRepository;
+import com.solaria.persistence.repository.specification.catalog.SupplierSpecification;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
diff --git a/src/main/java/com/solaria/persistence/service/BusinessContactService.java b/src/main/java/com/solaria/persistence/service/company/BusinessContactService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/BusinessContactService.java
rename to src/main/java/com/solaria/persistence/service/company/BusinessContactService.java
index f94c95e..72557c0 100644
--- a/src/main/java/com/solaria/persistence/service/BusinessContactService.java
+++ b/src/main/java/com/solaria/persistence/service/company/BusinessContactService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.company;
import java.util.List;
import java.util.UUID;
@@ -8,13 +8,13 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.BusinessContact;
-import com.solaria.persistence.dto.request.BusinessContactRequestDTO;
-import com.solaria.persistence.dto.response.BusinessContactResponseDTO;
+import com.solaria.persistence.domain.entity.company.BusinessContact;
+import com.solaria.persistence.dto.request.company.BusinessContactRequestDTO;
+import com.solaria.persistence.dto.response.company.BusinessContactResponseDTO;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.BusinessContactRepository;
-import com.solaria.persistence.repository.CompanyRepository;
+import com.solaria.persistence.repository.company.BusinessContactRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
@Service
public class BusinessContactService {
diff --git a/src/main/java/com/solaria/persistence/service/ChargeService.java b/src/main/java/com/solaria/persistence/service/company/ChargeService.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/service/ChargeService.java
rename to src/main/java/com/solaria/persistence/service/company/ChargeService.java
index 27d8f14..69dfcdc 100644
--- a/src/main/java/com/solaria/persistence/service/ChargeService.java
+++ b/src/main/java/com/solaria/persistence/service/company/ChargeService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.company;
import java.math.BigDecimal;
import java.time.LocalDate;
@@ -10,17 +10,17 @@
import org.springframework.transaction.annotation.Transactional;
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.dto.request.ChargeRequestDTO;
-import com.solaria.persistence.dto.response.ChargeResponseDTO;
-import com.solaria.persistence.domain.entity.Charge;
-import com.solaria.persistence.domain.entity.Subscription;
-import com.solaria.persistence.domain.enums.BillingStatus;
-import com.solaria.persistence.domain.enums.PaymentMethod;
+import com.solaria.persistence.dto.request.company.ChargeRequestDTO;
+import com.solaria.persistence.dto.response.company.ChargeResponseDTO;
+import com.solaria.persistence.domain.entity.company.Charge;
+import com.solaria.persistence.domain.entity.company.Subscription;
+import com.solaria.persistence.domain.enums.company.BillingStatus;
+import com.solaria.persistence.domain.enums.company.PaymentMethod;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ChargeRepository;
-import com.solaria.persistence.repository.SubscriptionRepository;
+import com.solaria.persistence.repository.company.ChargeRepository;
+import com.solaria.persistence.repository.company.SubscriptionRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/CompanyPhotoService.java b/src/main/java/com/solaria/persistence/service/company/CompanyPhotoService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/CompanyPhotoService.java
rename to src/main/java/com/solaria/persistence/service/company/CompanyPhotoService.java
index 17e31b1..2ddf550 100644
--- a/src/main/java/com/solaria/persistence/service/CompanyPhotoService.java
+++ b/src/main/java/com/solaria/persistence/service/company/CompanyPhotoService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.company;
import java.time.OffsetDateTime;
import java.util.List;
@@ -10,15 +10,16 @@
import org.springframework.web.multipart.MultipartFile;
import com.solaria.persistence.config.CloudinaryProperties;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.entity.CompanyPhoto;
-import com.solaria.persistence.domain.enums.PhotoType;
-import com.solaria.persistence.dto.response.CompanyPhotoResponseDTO;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.entity.company.CompanyPhoto;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
+import com.solaria.persistence.dto.response.company.CompanyPhotoResponseDTO;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CompanyPhotoRepository;
-import com.solaria.persistence.repository.CompanyRepository;
+import com.solaria.persistence.repository.company.CompanyPhotoRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
-import com.solaria.persistence.service.CloudinaryService.UploadResult;
+import com.solaria.persistence.service.shared.CloudinaryService.UploadResult;
+import com.solaria.persistence.service.shared.CloudinaryService;
@Service
public class CompanyPhotoService {
diff --git a/src/main/java/com/solaria/persistence/service/CompanyPlansService.java b/src/main/java/com/solaria/persistence/service/company/CompanyPlansService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/CompanyPlansService.java
rename to src/main/java/com/solaria/persistence/service/company/CompanyPlansService.java
index e943be2..c5b9d25 100644
--- a/src/main/java/com/solaria/persistence/service/CompanyPlansService.java
+++ b/src/main/java/com/solaria/persistence/service/company/CompanyPlansService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.company;
import java.math.BigDecimal;
import java.util.List;
@@ -9,14 +9,14 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.CompanyPlans;
-import com.solaria.persistence.dto.request.CompanyPlansRequestDTO;
-import com.solaria.persistence.dto.response.CompanyPlansResponseDTO;
+import com.solaria.persistence.domain.entity.company.CompanyPlans;
+import com.solaria.persistence.dto.request.company.CompanyPlansRequestDTO;
+import com.solaria.persistence.dto.response.company.CompanyPlansResponseDTO;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CompanyPlansRepository;
-import com.solaria.persistence.repository.SubscriptionRepository;
+import com.solaria.persistence.repository.company.CompanyPlansRepository;
+import com.solaria.persistence.repository.company.SubscriptionRepository;
@Service
public class CompanyPlansService {
diff --git a/src/main/java/com/solaria/persistence/service/CompanyPositionsService.java b/src/main/java/com/solaria/persistence/service/company/CompanyPositionsService.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/service/CompanyPositionsService.java
rename to src/main/java/com/solaria/persistence/service/company/CompanyPositionsService.java
index cea3e48..2596ebf 100644
--- a/src/main/java/com/solaria/persistence/service/CompanyPositionsService.java
+++ b/src/main/java/com/solaria/persistence/service/company/CompanyPositionsService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.company;
import java.util.List;
import java.util.UUID;
@@ -7,19 +7,19 @@
import org.springframework.transaction.annotation.Transactional;
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.dto.request.CompanyPositionsRequestDTO;
-import com.solaria.persistence.dto.response.CompanyPositionsResponseDTO;
-import com.solaria.persistence.dto.response.PositionResponseDTO;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.entity.CompanyPositions;
-import com.solaria.persistence.domain.entity.Position;
+import com.solaria.persistence.dto.request.company.CompanyPositionsRequestDTO;
+import com.solaria.persistence.dto.response.company.CompanyPositionsResponseDTO;
+import com.solaria.persistence.dto.response.identity.PositionResponseDTO;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.entity.company.CompanyPositions;
+import com.solaria.persistence.domain.entity.identity.Position;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CompanyPositionsRepository;
-import com.solaria.persistence.repository.CompanyRepository;
-import com.solaria.persistence.repository.PositionRepository;
-import com.solaria.persistence.repository.UserCompanyRepository;
+import com.solaria.persistence.repository.company.CompanyPositionsRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
+import com.solaria.persistence.repository.identity.PositionRepository;
+import com.solaria.persistence.repository.identity.UserCompanyRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/CompanyService.java b/src/main/java/com/solaria/persistence/service/company/CompanyService.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/service/CompanyService.java
rename to src/main/java/com/solaria/persistence/service/company/CompanyService.java
index 06b0450..7fa963c 100644
--- a/src/main/java/com/solaria/persistence/service/CompanyService.java
+++ b/src/main/java/com/solaria/persistence/service/company/CompanyService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.company;
import java.util.List;
import java.util.UUID;
@@ -6,28 +6,28 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Address;
-import com.solaria.persistence.domain.entity.BusinessContact;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.enums.CompanyStatus;
-import com.solaria.persistence.dto.request.CompanyRequestDTO;
-import com.solaria.persistence.dto.response.AddressResponseDTO;
-import com.solaria.persistence.dto.response.BusinessContactResponseDTO;
-import com.solaria.persistence.dto.response.CompanyResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Address;
+import com.solaria.persistence.domain.entity.company.BusinessContact;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.enums.company.CompanyStatus;
+import com.solaria.persistence.dto.request.company.CompanyRequestDTO;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
+import com.solaria.persistence.dto.response.company.BusinessContactResponseDTO;
+import com.solaria.persistence.dto.response.company.CompanyResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.AddressRepository;
-import com.solaria.persistence.repository.BusinessContactRepository;
-import com.solaria.persistence.repository.CompanyPhotoRepository;
-import com.solaria.persistence.repository.CompanyPositionsRepository;
-import com.solaria.persistence.repository.CompanyRepository;
-import com.solaria.persistence.repository.RequesterRepository;
-import com.solaria.persistence.repository.SupplierRepository;
-import com.solaria.persistence.repository.TechnicianAffiliationRepository;
-import com.solaria.persistence.repository.UserCompanyRepository;
+import com.solaria.persistence.repository.shared.AddressRepository;
+import com.solaria.persistence.repository.company.BusinessContactRepository;
+import com.solaria.persistence.repository.company.CompanyPhotoRepository;
+import com.solaria.persistence.repository.company.CompanyPositionsRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
+import com.solaria.persistence.repository.execution.RequesterRepository;
+import com.solaria.persistence.repository.catalog.SupplierRepository;
+import com.solaria.persistence.repository.professional.TechnicianAffiliationRepository;
+import com.solaria.persistence.repository.identity.UserCompanyRepository;
import com.solaria.persistence.util.SlugUtil;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/SubscriptionService.java b/src/main/java/com/solaria/persistence/service/company/SubscriptionService.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/service/SubscriptionService.java
rename to src/main/java/com/solaria/persistence/service/company/SubscriptionService.java
index 727b13a..effda8e 100644
--- a/src/main/java/com/solaria/persistence/service/SubscriptionService.java
+++ b/src/main/java/com/solaria/persistence/service/company/SubscriptionService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.company;
import java.time.OffsetDateTime;
import java.util.List;
@@ -9,19 +9,19 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.dto.response.CompanyPlansResponseDTO;
-import com.solaria.persistence.dto.request.SubscriptionRequestDTO;
-import com.solaria.persistence.dto.response.SubscriptionResponseDTO;
-import com.solaria.persistence.domain.entity.CompanyPlans;
-import com.solaria.persistence.domain.entity.Subscription;
-import com.solaria.persistence.domain.entity.Supplier;
-import com.solaria.persistence.domain.enums.SubscriptionStatus;
+import com.solaria.persistence.dto.response.company.CompanyPlansResponseDTO;
+import com.solaria.persistence.dto.request.company.SubscriptionRequestDTO;
+import com.solaria.persistence.dto.response.company.SubscriptionResponseDTO;
+import com.solaria.persistence.domain.entity.company.CompanyPlans;
+import com.solaria.persistence.domain.entity.company.Subscription;
+import com.solaria.persistence.domain.entity.catalog.Supplier;
+import com.solaria.persistence.domain.enums.company.SubscriptionStatus;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CompanyPlansRepository;
-import com.solaria.persistence.repository.SubscriptionRepository;
-import com.solaria.persistence.repository.SupplierRepository;
+import com.solaria.persistence.repository.company.CompanyPlansRepository;
+import com.solaria.persistence.repository.company.SubscriptionRepository;
+import com.solaria.persistence.repository.catalog.SupplierRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/RequesterService.java b/src/main/java/com/solaria/persistence/service/execution/RequesterService.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/service/RequesterService.java
rename to src/main/java/com/solaria/persistence/service/execution/RequesterService.java
index 82d637a..35ab7e2 100644
--- a/src/main/java/com/solaria/persistence/service/RequesterService.java
+++ b/src/main/java/com/solaria/persistence/service/execution/RequesterService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.execution;
import java.util.List;
import java.util.UUID;
@@ -6,25 +6,25 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Address;
-import com.solaria.persistence.domain.entity.BusinessContact;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.entity.Requester;
-import com.solaria.persistence.domain.enums.CompanyStatus;
-import com.solaria.persistence.dto.request.RequesterRequestDTO;
-import com.solaria.persistence.dto.response.AddressResponseDTO;
-import com.solaria.persistence.dto.response.BusinessContactResponseDTO;
-import com.solaria.persistence.dto.response.CompanyResponseDTO;
-import com.solaria.persistence.dto.response.RequesterResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Address;
+import com.solaria.persistence.domain.entity.company.BusinessContact;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.entity.execution.Requester;
+import com.solaria.persistence.domain.enums.company.CompanyStatus;
+import com.solaria.persistence.dto.request.execution.RequesterRequestDTO;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
+import com.solaria.persistence.dto.response.company.BusinessContactResponseDTO;
+import com.solaria.persistence.dto.response.company.CompanyResponseDTO;
+import com.solaria.persistence.dto.response.execution.RequesterResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CompanyRepository;
-import com.solaria.persistence.repository.ProposalRepository;
-import com.solaria.persistence.repository.RequesterRepository;
-import com.solaria.persistence.repository.SupplierRepository;
-import com.solaria.persistence.repository.TechnicalProjectRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
+import com.solaria.persistence.repository.proposal.ProposalRepository;
+import com.solaria.persistence.repository.execution.RequesterRepository;
+import com.solaria.persistence.repository.catalog.SupplierRepository;
+import com.solaria.persistence.repository.execution.TechnicalProjectRepository;
@Service
public class RequesterService {
diff --git a/src/main/java/com/solaria/persistence/service/ServiceContractService.java b/src/main/java/com/solaria/persistence/service/execution/ServiceContractService.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/service/ServiceContractService.java
rename to src/main/java/com/solaria/persistence/service/execution/ServiceContractService.java
index 37cb4d3..145372f 100644
--- a/src/main/java/com/solaria/persistence/service/ServiceContractService.java
+++ b/src/main/java/com/solaria/persistence/service/execution/ServiceContractService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.execution;
import java.time.LocalDate;
import java.util.UUID;
@@ -7,17 +7,17 @@
import org.springframework.transaction.annotation.Transactional;
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.dto.request.ServiceContractRequestDTO;
-import com.solaria.persistence.dto.response.ServiceContractResponseDTO;
-import com.solaria.persistence.domain.entity.ServiceContract;
-import com.solaria.persistence.domain.entity.TechnicalService;
-import com.solaria.persistence.domain.enums.ServiceStatus;
+import com.solaria.persistence.dto.request.execution.ServiceContractRequestDTO;
+import com.solaria.persistence.dto.response.execution.ServiceContractResponseDTO;
+import com.solaria.persistence.domain.entity.execution.ServiceContract;
+import com.solaria.persistence.domain.entity.execution.TechnicalService;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ServiceContractRepository;
-import com.solaria.persistence.repository.TechnicalServiceRepository;
+import com.solaria.persistence.repository.execution.ServiceContractRepository;
+import com.solaria.persistence.repository.execution.TechnicalServiceRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
diff --git a/src/main/java/com/solaria/persistence/service/ServiceExecutorService.java b/src/main/java/com/solaria/persistence/service/execution/ServiceExecutorService.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/service/ServiceExecutorService.java
rename to src/main/java/com/solaria/persistence/service/execution/ServiceExecutorService.java
index 4f0b0e9..f777846 100644
--- a/src/main/java/com/solaria/persistence/service/ServiceExecutorService.java
+++ b/src/main/java/com/solaria/persistence/service/execution/ServiceExecutorService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.execution;
import java.util.List;
import java.util.UUID;
@@ -8,20 +8,20 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.ServiceExecutor;
-import com.solaria.persistence.domain.entity.TechnicalService;
-import com.solaria.persistence.domain.entity.TechnicianAffiliation;
-import com.solaria.persistence.domain.enums.ServiceStatus;
-import com.solaria.persistence.dto.request.ServiceExecutorRequestDTO;
-import com.solaria.persistence.dto.response.ServiceExecutorResponseDTO;
-import com.solaria.persistence.dto.response.TechnicianAffiliationResponseDTO;
+import com.solaria.persistence.domain.entity.execution.ServiceExecutor;
+import com.solaria.persistence.domain.entity.execution.TechnicalService;
+import com.solaria.persistence.domain.entity.professional.TechnicianAffiliation;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
+import com.solaria.persistence.dto.request.execution.ServiceExecutorRequestDTO;
+import com.solaria.persistence.dto.response.execution.ServiceExecutorResponseDTO;
+import com.solaria.persistence.dto.response.professional.TechnicianAffiliationResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ServiceExecutorRepository;
-import com.solaria.persistence.repository.TechnicalServiceRepository;
-import com.solaria.persistence.repository.TechnicianAffiliationRepository;
+import com.solaria.persistence.repository.execution.ServiceExecutorRepository;
+import com.solaria.persistence.repository.execution.TechnicalServiceRepository;
+import com.solaria.persistence.repository.professional.TechnicianAffiliationRepository;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/TechnicalProjectService.java b/src/main/java/com/solaria/persistence/service/execution/TechnicalProjectService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/TechnicalProjectService.java
rename to src/main/java/com/solaria/persistence/service/execution/TechnicalProjectService.java
index a6420c0..d0d61ba 100644
--- a/src/main/java/com/solaria/persistence/service/TechnicalProjectService.java
+++ b/src/main/java/com/solaria/persistence/service/execution/TechnicalProjectService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.execution;
import java.util.List;
import java.util.UUID;
@@ -6,18 +6,18 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.LocalUnit;
-import com.solaria.persistence.domain.entity.Requester;
-import com.solaria.persistence.domain.entity.TechnicalProject;
-import com.solaria.persistence.domain.enums.ServiceStatus;
-import com.solaria.persistence.dto.request.TechnicalProjectRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalProjectResponseDTO;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
+import com.solaria.persistence.domain.entity.execution.Requester;
+import com.solaria.persistence.domain.entity.execution.TechnicalProject;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
+import com.solaria.persistence.dto.request.execution.TechnicalProjectRequestDTO;
+import com.solaria.persistence.dto.response.execution.TechnicalProjectResponseDTO;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.LocalUnitRepository;
-import com.solaria.persistence.repository.RequesterRepository;
-import com.solaria.persistence.repository.TechnicalProjectRepository;
-import com.solaria.persistence.repository.TechnicalServiceRepository;
+import com.solaria.persistence.repository.unit.LocalUnitRepository;
+import com.solaria.persistence.repository.execution.RequesterRepository;
+import com.solaria.persistence.repository.execution.TechnicalProjectRepository;
+import com.solaria.persistence.repository.execution.TechnicalServiceRepository;
@Service
public class TechnicalProjectService {
diff --git a/src/main/java/com/solaria/persistence/service/TechnicalServiceService.java b/src/main/java/com/solaria/persistence/service/execution/TechnicalServiceService.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/service/TechnicalServiceService.java
rename to src/main/java/com/solaria/persistence/service/execution/TechnicalServiceService.java
index 3c513e4..6e0074f 100644
--- a/src/main/java/com/solaria/persistence/service/TechnicalServiceService.java
+++ b/src/main/java/com/solaria/persistence/service/execution/TechnicalServiceService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.execution;
import java.time.OffsetDateTime;
import java.util.List;
@@ -8,16 +8,16 @@
import org.springframework.transaction.annotation.Transactional;
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.dto.request.TechnicalServiceRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalServiceResponseDTO;
-import com.solaria.persistence.domain.entity.TechnicalProject;
-import com.solaria.persistence.domain.entity.TechnicalService;
-import com.solaria.persistence.domain.enums.ServiceStatus;
+import com.solaria.persistence.dto.request.execution.TechnicalServiceRequestDTO;
+import com.solaria.persistence.dto.response.execution.TechnicalServiceResponseDTO;
+import com.solaria.persistence.domain.entity.execution.TechnicalProject;
+import com.solaria.persistence.domain.entity.execution.TechnicalService;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ServiceExecutorRepository;
-import com.solaria.persistence.repository.TechnicalProjectRepository;
-import com.solaria.persistence.repository.TechnicalServiceRepository;
+import com.solaria.persistence.repository.execution.ServiceExecutorRepository;
+import com.solaria.persistence.repository.execution.TechnicalProjectRepository;
+import com.solaria.persistence.repository.execution.TechnicalServiceRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/InternalUserProvisioningService.java b/src/main/java/com/solaria/persistence/service/identity/InternalUserProvisioningService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/InternalUserProvisioningService.java
rename to src/main/java/com/solaria/persistence/service/identity/InternalUserProvisioningService.java
index 17506e6..ee28716 100644
--- a/src/main/java/com/solaria/persistence/service/InternalUserProvisioningService.java
+++ b/src/main/java/com/solaria/persistence/service/identity/InternalUserProvisioningService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.identity;
import java.util.Optional;
import java.util.UUID;
@@ -7,9 +7,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.User;
-import com.solaria.persistence.dto.response.InternalUserProvisionResponseDTO;
-import com.solaria.persistence.repository.UserRepository;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.dto.response.identity.InternalUserProvisionResponseDTO;
+import com.solaria.persistence.repository.identity.UserRepository;
// classe service dedicada a eventos de registro de Users vindos de api-auth (M2M)
// separado de UserService pois fluxo prexisa ser idempotente; entrega de eventos em fila
diff --git a/src/main/java/com/solaria/persistence/service/PermissionService.java b/src/main/java/com/solaria/persistence/service/identity/PermissionService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/PermissionService.java
rename to src/main/java/com/solaria/persistence/service/identity/PermissionService.java
index ce163a3..ef365b9 100644
--- a/src/main/java/com/solaria/persistence/service/PermissionService.java
+++ b/src/main/java/com/solaria/persistence/service/identity/PermissionService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.identity;
import java.util.List;
import java.util.UUID;
@@ -7,13 +7,13 @@
import org.springframework.transaction.annotation.Transactional;
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.dto.request.PermissionRequestDTO;
-import com.solaria.persistence.dto.response.PermissionResponseDTO;
-import com.solaria.persistence.domain.entity.Permission;
+import com.solaria.persistence.dto.request.identity.PermissionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PermissionResponseDTO;
+import com.solaria.persistence.domain.entity.identity.Permission;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.PermissionRepository;
-import com.solaria.persistence.repository.PositionPermissionRepository;
+import com.solaria.persistence.repository.identity.PermissionRepository;
+import com.solaria.persistence.repository.identity.PositionPermissionRepository;
@Service
public class PermissionService {
diff --git a/src/main/java/com/solaria/persistence/service/PersonService.java b/src/main/java/com/solaria/persistence/service/identity/PersonService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/PersonService.java
rename to src/main/java/com/solaria/persistence/service/identity/PersonService.java
index cbd937d..46f0b00 100644
--- a/src/main/java/com/solaria/persistence/service/PersonService.java
+++ b/src/main/java/com/solaria/persistence/service/identity/PersonService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.identity;
import java.time.LocalDate;
import java.util.List;
@@ -7,20 +7,20 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Contact;
-import com.solaria.persistence.domain.entity.Person;
-import com.solaria.persistence.domain.entity.User;
-import com.solaria.persistence.dto.request.PersonRequestDTO;
-import com.solaria.persistence.dto.response.ContactResponseDTO;
-import com.solaria.persistence.dto.response.PersonResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Contact;
+import com.solaria.persistence.domain.entity.identity.Person;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.dto.request.identity.PersonRequestDTO;
+import com.solaria.persistence.dto.response.shared.ContactResponseDTO;
+import com.solaria.persistence.dto.response.identity.PersonResponseDTO;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ContactRepository;
-import com.solaria.persistence.repository.PersonRepository;
-import com.solaria.persistence.repository.TechnicianRepository;
-import com.solaria.persistence.repository.UserRepository;
+import com.solaria.persistence.repository.shared.ContactRepository;
+import com.solaria.persistence.repository.identity.PersonRepository;
+import com.solaria.persistence.repository.professional.TechnicianRepository;
+import com.solaria.persistence.repository.identity.UserRepository;
@Service
public class PersonService {
diff --git a/src/main/java/com/solaria/persistence/service/PositionPermissionService.java b/src/main/java/com/solaria/persistence/service/identity/PositionPermissionService.java
similarity index 83%
rename from src/main/java/com/solaria/persistence/service/PositionPermissionService.java
rename to src/main/java/com/solaria/persistence/service/identity/PositionPermissionService.java
index b809cf7..45a1039 100644
--- a/src/main/java/com/solaria/persistence/service/PositionPermissionService.java
+++ b/src/main/java/com/solaria/persistence/service/identity/PositionPermissionService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.identity;
import java.util.List;
import java.util.UUID;
@@ -6,18 +6,18 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.dto.response.PermissionResponseDTO;
-import com.solaria.persistence.dto.request.PositionPermissionRequestDTO;
-import com.solaria.persistence.dto.response.PositionPermissionResponseDTO;
-import com.solaria.persistence.domain.entity.Permission;
-import com.solaria.persistence.domain.entity.Position;
-import com.solaria.persistence.domain.entity.PositionPermission;
+import com.solaria.persistence.dto.response.identity.PermissionResponseDTO;
+import com.solaria.persistence.dto.request.identity.PositionPermissionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PositionPermissionResponseDTO;
+import com.solaria.persistence.domain.entity.identity.Permission;
+import com.solaria.persistence.domain.entity.identity.Position;
+import com.solaria.persistence.domain.entity.identity.PositionPermission;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.ResourceNotFoundException;
import com.solaria.persistence.exception.UnauthorizedAccessException;
-import com.solaria.persistence.repository.PermissionRepository;
-import com.solaria.persistence.repository.PositionPermissionRepository;
-import com.solaria.persistence.repository.PositionRepository;
+import com.solaria.persistence.repository.identity.PermissionRepository;
+import com.solaria.persistence.repository.identity.PositionPermissionRepository;
+import com.solaria.persistence.repository.identity.PositionRepository;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/PositionService.java b/src/main/java/com/solaria/persistence/service/identity/PositionService.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/service/PositionService.java
rename to src/main/java/com/solaria/persistence/service/identity/PositionService.java
index d3f1f29..aeef835 100644
--- a/src/main/java/com/solaria/persistence/service/PositionService.java
+++ b/src/main/java/com/solaria/persistence/service/identity/PositionService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.identity;
import java.util.List;
import java.util.UUID;
@@ -7,16 +7,16 @@
import org.springframework.transaction.annotation.Transactional;
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.dto.request.PositionRequestDTO;
-import com.solaria.persistence.dto.response.PositionResponseDTO;
-import com.solaria.persistence.domain.entity.Position;
+import com.solaria.persistence.dto.request.identity.PositionRequestDTO;
+import com.solaria.persistence.dto.response.identity.PositionResponseDTO;
+import com.solaria.persistence.domain.entity.identity.Position;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
import com.solaria.persistence.exception.UnauthorizedAccessException;
-import com.solaria.persistence.repository.CompanyPositionsRepository;
-import com.solaria.persistence.repository.PositionPermissionRepository;
-import com.solaria.persistence.repository.PositionRepository;
-import com.solaria.persistence.repository.UserCompanyRepository;
+import com.solaria.persistence.repository.company.CompanyPositionsRepository;
+import com.solaria.persistence.repository.identity.PositionPermissionRepository;
+import com.solaria.persistence.repository.identity.PositionRepository;
+import com.solaria.persistence.repository.identity.UserCompanyRepository;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/UserCompanyService.java b/src/main/java/com/solaria/persistence/service/identity/UserCompanyService.java
similarity index 89%
rename from src/main/java/com/solaria/persistence/service/UserCompanyService.java
rename to src/main/java/com/solaria/persistence/service/identity/UserCompanyService.java
index d61df46..5ec1711 100644
--- a/src/main/java/com/solaria/persistence/service/UserCompanyService.java
+++ b/src/main/java/com/solaria/persistence/service/identity/UserCompanyService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.identity;
import java.util.List;
import java.util.UUID;
@@ -7,22 +7,22 @@
import org.springframework.transaction.annotation.Transactional;
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.dto.response.PositionResponseDTO;
-import com.solaria.persistence.dto.request.UserCompanyRequestDTO;
-import com.solaria.persistence.dto.response.UserCompanyResponseDTO;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.entity.Position;
-import com.solaria.persistence.domain.entity.User;
-import com.solaria.persistence.domain.entity.UserCompany;
+import com.solaria.persistence.dto.response.identity.PositionResponseDTO;
+import com.solaria.persistence.dto.request.identity.UserCompanyRequestDTO;
+import com.solaria.persistence.dto.response.identity.UserCompanyResponseDTO;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.entity.identity.Position;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.domain.entity.identity.UserCompany;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
import com.solaria.persistence.exception.UnauthorizedAccessException;
-import com.solaria.persistence.repository.CompanyPositionsRepository;
-import com.solaria.persistence.repository.CompanyRepository;
-import com.solaria.persistence.repository.PositionRepository;
-import com.solaria.persistence.repository.UserCompanyRepository;
-import com.solaria.persistence.repository.UserRepository;
+import com.solaria.persistence.repository.company.CompanyPositionsRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
+import com.solaria.persistence.repository.identity.PositionRepository;
+import com.solaria.persistence.repository.identity.UserCompanyRepository;
+import com.solaria.persistence.repository.identity.UserRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
diff --git a/src/main/java/com/solaria/persistence/service/UserPhotoService.java b/src/main/java/com/solaria/persistence/service/identity/UserPhotoService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/UserPhotoService.java
rename to src/main/java/com/solaria/persistence/service/identity/UserPhotoService.java
index 6d4b206..4c3d64d 100644
--- a/src/main/java/com/solaria/persistence/service/UserPhotoService.java
+++ b/src/main/java/com/solaria/persistence/service/identity/UserPhotoService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.identity;
import java.time.OffsetDateTime;
import java.util.List;
@@ -10,15 +10,16 @@
import org.springframework.web.multipart.MultipartFile;
import com.solaria.persistence.config.CloudinaryProperties;
-import com.solaria.persistence.domain.entity.User;
-import com.solaria.persistence.domain.entity.UserPhoto;
-import com.solaria.persistence.domain.enums.PhotoType;
-import com.solaria.persistence.dto.response.UserPhotoResponseDTO;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.domain.entity.identity.UserPhoto;
+import com.solaria.persistence.domain.enums.shared.PhotoType;
+import com.solaria.persistence.dto.response.identity.UserPhotoResponseDTO;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.UserPhotoRepository;
-import com.solaria.persistence.repository.UserRepository;
+import com.solaria.persistence.repository.identity.UserPhotoRepository;
+import com.solaria.persistence.repository.identity.UserRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
-import com.solaria.persistence.service.CloudinaryService.UploadResult;
+import com.solaria.persistence.service.shared.CloudinaryService.UploadResult;
+import com.solaria.persistence.service.shared.CloudinaryService;
@Service
public class UserPhotoService {
diff --git a/src/main/java/com/solaria/persistence/service/UserService.java b/src/main/java/com/solaria/persistence/service/identity/UserService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/UserService.java
rename to src/main/java/com/solaria/persistence/service/identity/UserService.java
index d0835ca..649b97a 100644
--- a/src/main/java/com/solaria/persistence/service/UserService.java
+++ b/src/main/java/com/solaria/persistence/service/identity/UserService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.identity;
import java.util.List;
import java.util.UUID;
@@ -8,16 +8,16 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.User;
-import com.solaria.persistence.dto.request.UserRequestDTO;
-import com.solaria.persistence.dto.response.UserResponseDTO;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.dto.request.identity.UserRequestDTO;
+import com.solaria.persistence.dto.response.identity.UserResponseDTO;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.PersonRepository;
-import com.solaria.persistence.repository.UserCompanyRepository;
-import com.solaria.persistence.repository.UserPhotoRepository;
-import com.solaria.persistence.repository.UserRepository;
+import com.solaria.persistence.repository.identity.PersonRepository;
+import com.solaria.persistence.repository.identity.UserCompanyRepository;
+import com.solaria.persistence.repository.identity.UserPhotoRepository;
+import com.solaria.persistence.repository.identity.UserRepository;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/CertificationRecordService.java b/src/main/java/com/solaria/persistence/service/professional/CertificationRecordService.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/service/CertificationRecordService.java
rename to src/main/java/com/solaria/persistence/service/professional/CertificationRecordService.java
index a712915..7688c9c 100644
--- a/src/main/java/com/solaria/persistence/service/CertificationRecordService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/CertificationRecordService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.util.List;
import java.util.UUID;
@@ -6,15 +6,15 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Certification;
-import com.solaria.persistence.domain.entity.CertificationRecord;
-import com.solaria.persistence.domain.entity.ProfessionalRegistration;
-import com.solaria.persistence.dto.request.CertificationRecordRequestDTO;
-import com.solaria.persistence.dto.response.CertificationRecordResponseDTO;
+import com.solaria.persistence.domain.entity.professional.Certification;
+import com.solaria.persistence.domain.entity.professional.CertificationRecord;
+import com.solaria.persistence.domain.entity.professional.ProfessionalRegistration;
+import com.solaria.persistence.dto.request.professional.CertificationRecordRequestDTO;
+import com.solaria.persistence.dto.response.professional.CertificationRecordResponseDTO;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CertificationRecordRepository;
-import com.solaria.persistence.repository.CertificationRepository;
-import com.solaria.persistence.repository.ProfessionalRegistrationRepository;
+import com.solaria.persistence.repository.professional.CertificationRecordRepository;
+import com.solaria.persistence.repository.professional.CertificationRepository;
+import com.solaria.persistence.repository.professional.ProfessionalRegistrationRepository;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/CertificationService.java b/src/main/java/com/solaria/persistence/service/professional/CertificationService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/CertificationService.java
rename to src/main/java/com/solaria/persistence/service/professional/CertificationService.java
index f0df2e8..684232d 100644
--- a/src/main/java/com/solaria/persistence/service/CertificationService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/CertificationService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.util.List;
import java.util.UUID;
@@ -8,13 +8,13 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.Certification;
-import com.solaria.persistence.dto.request.CertificationRequestDTO;
-import com.solaria.persistence.dto.response.CertificationResponseDTO;
+import com.solaria.persistence.domain.entity.professional.Certification;
+import com.solaria.persistence.dto.request.professional.CertificationRequestDTO;
+import com.solaria.persistence.dto.response.professional.CertificationResponseDTO;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CertificationRecordRepository;
-import com.solaria.persistence.repository.CertificationRepository;
+import com.solaria.persistence.repository.professional.CertificationRecordRepository;
+import com.solaria.persistence.repository.professional.CertificationRepository;
@Service
public class CertificationService {
diff --git a/src/main/java/com/solaria/persistence/service/ProfessionService.java b/src/main/java/com/solaria/persistence/service/professional/ProfessionService.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/service/ProfessionService.java
rename to src/main/java/com/solaria/persistence/service/professional/ProfessionService.java
index 49a7a06..f267656 100644
--- a/src/main/java/com/solaria/persistence/service/ProfessionService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/ProfessionService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.util.List;
import java.util.UUID;
@@ -8,13 +8,13 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.Profession;
-import com.solaria.persistence.dto.request.ProfessionRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionResponseDTO;
+import com.solaria.persistence.domain.entity.professional.Profession;
+import com.solaria.persistence.dto.request.professional.ProfessionRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionResponseDTO;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ProfessionRepository;
-import com.solaria.persistence.repository.ProfessionalRegistrationRepository;
+import com.solaria.persistence.repository.professional.ProfessionRepository;
+import com.solaria.persistence.repository.professional.ProfessionalRegistrationRepository;
@Service
public class ProfessionService {
diff --git a/src/main/java/com/solaria/persistence/service/ProfessionalRegistrationService.java b/src/main/java/com/solaria/persistence/service/professional/ProfessionalRegistrationService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/ProfessionalRegistrationService.java
rename to src/main/java/com/solaria/persistence/service/professional/ProfessionalRegistrationService.java
index 636be98..b088c49 100644
--- a/src/main/java/com/solaria/persistence/service/ProfessionalRegistrationService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/ProfessionalRegistrationService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.util.List;
import java.util.UUID;
@@ -6,17 +6,17 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.ProfessionalRegistration;
-import com.solaria.persistence.domain.entity.Profession;
-import com.solaria.persistence.domain.entity.Technician;
-import com.solaria.persistence.dto.request.ProfessionalRegistrationRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionalRegistrationResponseDTO;
+import com.solaria.persistence.domain.entity.professional.ProfessionalRegistration;
+import com.solaria.persistence.domain.entity.professional.Profession;
+import com.solaria.persistence.domain.entity.professional.Technician;
+import com.solaria.persistence.dto.request.professional.ProfessionalRegistrationRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionalRegistrationResponseDTO;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CertificationRecordRepository;
-import com.solaria.persistence.repository.ProfessionRepository;
-import com.solaria.persistence.repository.ProfessionalRegistrationRepository;
-import com.solaria.persistence.repository.TechnicianRepository;
+import com.solaria.persistence.repository.professional.CertificationRecordRepository;
+import com.solaria.persistence.repository.professional.ProfessionRepository;
+import com.solaria.persistence.repository.professional.ProfessionalRegistrationRepository;
+import com.solaria.persistence.repository.professional.TechnicianRepository;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/ProfessionalReviewService.java b/src/main/java/com/solaria/persistence/service/professional/ProfessionalReviewService.java
similarity index 85%
rename from src/main/java/com/solaria/persistence/service/ProfessionalReviewService.java
rename to src/main/java/com/solaria/persistence/service/professional/ProfessionalReviewService.java
index 7ce9933..8b1b426 100644
--- a/src/main/java/com/solaria/persistence/service/ProfessionalReviewService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/ProfessionalReviewService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.math.BigDecimal;
import java.time.OffsetDateTime;
@@ -8,22 +8,22 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.ProfessionalReview;
-import com.solaria.persistence.domain.entity.Technician;
-import com.solaria.persistence.domain.entity.TechnicalService;
-import com.solaria.persistence.domain.entity.User;
-import com.solaria.persistence.domain.enums.ServiceStatus;
-import com.solaria.persistence.dto.request.ProfessionalReviewRequestDTO;
-import com.solaria.persistence.dto.response.ProfessionalReviewResponseDTO;
+import com.solaria.persistence.domain.entity.professional.ProfessionalReview;
+import com.solaria.persistence.domain.entity.professional.Technician;
+import com.solaria.persistence.domain.entity.execution.TechnicalService;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.domain.enums.execution.ServiceStatus;
+import com.solaria.persistence.dto.request.professional.ProfessionalReviewRequestDTO;
+import com.solaria.persistence.dto.response.professional.ProfessionalReviewResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ProfessionalReviewRepository;
-import com.solaria.persistence.repository.ServiceExecutorRepository;
-import com.solaria.persistence.repository.TechnicalServiceRepository;
-import com.solaria.persistence.repository.TechnicianRepository;
-import com.solaria.persistence.repository.UserRepository;
+import com.solaria.persistence.repository.professional.ProfessionalReviewRepository;
+import com.solaria.persistence.repository.execution.ServiceExecutorRepository;
+import com.solaria.persistence.repository.execution.TechnicalServiceRepository;
+import com.solaria.persistence.repository.professional.TechnicianRepository;
+import com.solaria.persistence.repository.identity.UserRepository;
@Service
public class ProfessionalReviewService {
diff --git a/src/main/java/com/solaria/persistence/service/ShiftService.java b/src/main/java/com/solaria/persistence/service/professional/ShiftService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/ShiftService.java
rename to src/main/java/com/solaria/persistence/service/professional/ShiftService.java
index c793265..3531d4d 100644
--- a/src/main/java/com/solaria/persistence/service/ShiftService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/ShiftService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.util.List;
import java.util.UUID;
@@ -6,14 +6,14 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Shift;
-import com.solaria.persistence.domain.entity.Technician;
-import com.solaria.persistence.dto.request.ShiftRequestDTO;
-import com.solaria.persistence.dto.response.ShiftResponseDTO;
+import com.solaria.persistence.domain.entity.professional.Shift;
+import com.solaria.persistence.domain.entity.professional.Technician;
+import com.solaria.persistence.dto.request.professional.ShiftRequestDTO;
+import com.solaria.persistence.dto.response.professional.ShiftResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ShiftRepository;
-import com.solaria.persistence.repository.TechnicianRepository;
+import com.solaria.persistence.repository.professional.ShiftRepository;
+import com.solaria.persistence.repository.professional.TechnicianRepository;
@Service
public class ShiftService {
diff --git a/src/main/java/com/solaria/persistence/service/TechnicalCourseService.java b/src/main/java/com/solaria/persistence/service/professional/TechnicalCourseService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/TechnicalCourseService.java
rename to src/main/java/com/solaria/persistence/service/professional/TechnicalCourseService.java
index 17d9411..ee55968 100644
--- a/src/main/java/com/solaria/persistence/service/TechnicalCourseService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/TechnicalCourseService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.util.List;
import java.util.UUID;
@@ -6,13 +6,13 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.entity.TechnicalCourse;
-import com.solaria.persistence.dto.request.TechnicalCourseRequestDTO;
-import com.solaria.persistence.dto.response.TechnicalCourseResponseDTO;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.entity.professional.TechnicalCourse;
+import com.solaria.persistence.dto.request.professional.TechnicalCourseRequestDTO;
+import com.solaria.persistence.dto.response.professional.TechnicalCourseResponseDTO;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CompanyRepository;
-import com.solaria.persistence.repository.TechnicalCourseRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
+import com.solaria.persistence.repository.professional.TechnicalCourseRepository;
@Service
public class TechnicalCourseService {
diff --git a/src/main/java/com/solaria/persistence/service/TechnicianAffiliationService.java b/src/main/java/com/solaria/persistence/service/professional/TechnicianAffiliationService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/TechnicianAffiliationService.java
rename to src/main/java/com/solaria/persistence/service/professional/TechnicianAffiliationService.java
index d85b046..a334096 100644
--- a/src/main/java/com/solaria/persistence/service/TechnicianAffiliationService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/TechnicianAffiliationService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.util.List;
import java.util.UUID;
@@ -8,17 +8,17 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.Company;
-import com.solaria.persistence.domain.entity.Technician;
-import com.solaria.persistence.domain.entity.TechnicianAffiliation;
-import com.solaria.persistence.domain.enums.TechnicalAffiliationType;
-import com.solaria.persistence.dto.request.TechnicianAffiliationRequestDTO;
-import com.solaria.persistence.dto.response.TechnicianAffiliationResponseDTO;
+import com.solaria.persistence.domain.entity.company.Company;
+import com.solaria.persistence.domain.entity.professional.Technician;
+import com.solaria.persistence.domain.entity.professional.TechnicianAffiliation;
+import com.solaria.persistence.domain.enums.professional.TechnicalAffiliationType;
+import com.solaria.persistence.dto.request.professional.TechnicianAffiliationRequestDTO;
+import com.solaria.persistence.dto.response.professional.TechnicianAffiliationResponseDTO;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.CompanyRepository;
-import com.solaria.persistence.repository.TechnicianAffiliationRepository;
-import com.solaria.persistence.repository.TechnicianRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
+import com.solaria.persistence.repository.professional.TechnicianAffiliationRepository;
+import com.solaria.persistence.repository.professional.TechnicianRepository;
@Service
public class TechnicianAffiliationService {
diff --git a/src/main/java/com/solaria/persistence/service/TechnicianService.java b/src/main/java/com/solaria/persistence/service/professional/TechnicianService.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/service/TechnicianService.java
rename to src/main/java/com/solaria/persistence/service/professional/TechnicianService.java
index f3c444f..c7d3f26 100644
--- a/src/main/java/com/solaria/persistence/service/TechnicianService.java
+++ b/src/main/java/com/solaria/persistence/service/professional/TechnicianService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.professional;
import java.util.List;
import java.util.UUID;
@@ -6,18 +6,18 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Contact;
-import com.solaria.persistence.domain.entity.Person;
-import com.solaria.persistence.domain.entity.Technician;
-import com.solaria.persistence.dto.request.TechnicianRequestDTO;
-import com.solaria.persistence.dto.response.ContactResponseDTO;
-import com.solaria.persistence.dto.response.PersonResponseDTO;
-import com.solaria.persistence.dto.response.TechnicianResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Contact;
+import com.solaria.persistence.domain.entity.identity.Person;
+import com.solaria.persistence.domain.entity.professional.Technician;
+import com.solaria.persistence.dto.request.professional.TechnicianRequestDTO;
+import com.solaria.persistence.dto.response.shared.ContactResponseDTO;
+import com.solaria.persistence.dto.response.identity.PersonResponseDTO;
+import com.solaria.persistence.dto.response.professional.TechnicianResponseDTO;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.PersonRepository;
-import com.solaria.persistence.repository.TechnicianRepository;
+import com.solaria.persistence.repository.identity.PersonRepository;
+import com.solaria.persistence.repository.professional.TechnicianRepository;
import com.solaria.persistence.util.SlugUtil;
diff --git a/src/main/java/com/solaria/persistence/service/ProposalItemService.java b/src/main/java/com/solaria/persistence/service/proposal/ProposalItemService.java
similarity index 91%
rename from src/main/java/com/solaria/persistence/service/ProposalItemService.java
rename to src/main/java/com/solaria/persistence/service/proposal/ProposalItemService.java
index f68784e..5c83c55 100644
--- a/src/main/java/com/solaria/persistence/service/ProposalItemService.java
+++ b/src/main/java/com/solaria/persistence/service/proposal/ProposalItemService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.proposal;
import java.math.BigDecimal;
import java.time.OffsetDateTime;
@@ -8,21 +8,21 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Model;
-import com.solaria.persistence.domain.entity.Offer;
-import com.solaria.persistence.domain.entity.Proposal;
-import com.solaria.persistence.domain.entity.ProposalItem;
-import com.solaria.persistence.dto.request.ProposalItemRequestDTO;
-import com.solaria.persistence.dto.response.ModelResponseDTO;
-import com.solaria.persistence.dto.response.OfferResponseDTO;
-import com.solaria.persistence.dto.response.ProposalItemResponseDTO;
+import com.solaria.persistence.domain.entity.catalog.Model;
+import com.solaria.persistence.domain.entity.catalog.Offer;
+import com.solaria.persistence.domain.entity.proposal.Proposal;
+import com.solaria.persistence.domain.entity.proposal.ProposalItem;
+import com.solaria.persistence.dto.request.proposal.ProposalItemRequestDTO;
+import com.solaria.persistence.dto.response.catalog.ModelResponseDTO;
+import com.solaria.persistence.dto.response.catalog.OfferResponseDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalItemResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.OfferRepository;
-import com.solaria.persistence.repository.ProposalItemRepository;
-import com.solaria.persistence.repository.ProposalRepository;
+import com.solaria.persistence.repository.catalog.OfferRepository;
+import com.solaria.persistence.repository.proposal.ProposalItemRepository;
+import com.solaria.persistence.repository.proposal.ProposalRepository;
@Service
public class ProposalItemService {
diff --git a/src/main/java/com/solaria/persistence/service/ProposalService.java b/src/main/java/com/solaria/persistence/service/proposal/ProposalService.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/service/ProposalService.java
rename to src/main/java/com/solaria/persistence/service/proposal/ProposalService.java
index bfcfbdd..7a58608 100644
--- a/src/main/java/com/solaria/persistence/service/ProposalService.java
+++ b/src/main/java/com/solaria/persistence/service/proposal/ProposalService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.proposal;
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -10,21 +10,21 @@
import org.springframework.transaction.annotation.Transactional;
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.dto.request.ProposalRequestDTO;
-import com.solaria.persistence.dto.response.ProposalResponseDTO;
-import com.solaria.persistence.domain.entity.Inventory;
-import com.solaria.persistence.domain.entity.Offer;
-import com.solaria.persistence.domain.entity.Proposal;
-import com.solaria.persistence.domain.entity.ProposalItem;
-import com.solaria.persistence.domain.entity.Requester;
-import com.solaria.persistence.domain.enums.ProposalStatus;
+import com.solaria.persistence.dto.request.proposal.ProposalRequestDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalResponseDTO;
+import com.solaria.persistence.domain.entity.catalog.Inventory;
+import com.solaria.persistence.domain.entity.catalog.Offer;
+import com.solaria.persistence.domain.entity.proposal.Proposal;
+import com.solaria.persistence.domain.entity.proposal.ProposalItem;
+import com.solaria.persistence.domain.entity.execution.Requester;
+import com.solaria.persistence.domain.enums.proposal.ProposalStatus;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.InventoryRepository;
-import com.solaria.persistence.repository.OfferRepository;
-import com.solaria.persistence.repository.ProposalItemRepository;
-import com.solaria.persistence.repository.ProposalRepository;
-import com.solaria.persistence.repository.RequesterRepository;
+import com.solaria.persistence.repository.catalog.InventoryRepository;
+import com.solaria.persistence.repository.catalog.OfferRepository;
+import com.solaria.persistence.repository.proposal.ProposalItemRepository;
+import com.solaria.persistence.repository.proposal.ProposalRepository;
+import com.solaria.persistence.repository.execution.RequesterRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/ProposalUnitService.java b/src/main/java/com/solaria/persistence/service/proposal/ProposalUnitService.java
similarity index 90%
rename from src/main/java/com/solaria/persistence/service/ProposalUnitService.java
rename to src/main/java/com/solaria/persistence/service/proposal/ProposalUnitService.java
index 1ed8fb0..41f8fb5 100644
--- a/src/main/java/com/solaria/persistence/service/ProposalUnitService.java
+++ b/src/main/java/com/solaria/persistence/service/proposal/ProposalUnitService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.proposal;
import java.util.List;
import java.util.UUID;
@@ -6,22 +6,22 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Address;
-import com.solaria.persistence.domain.entity.LocalUnit;
-import com.solaria.persistence.domain.entity.ProposalItem;
-import com.solaria.persistence.domain.entity.ProposalUnit;
-import com.solaria.persistence.domain.enums.ProposalStatus;
-import com.solaria.persistence.dto.request.ProposalUnitRequestDTO;
-import com.solaria.persistence.dto.response.AddressResponseDTO;
-import com.solaria.persistence.dto.response.LocalUnitResponseDTO;
-import com.solaria.persistence.dto.response.ProposalUnitResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Address;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
+import com.solaria.persistence.domain.entity.proposal.ProposalItem;
+import com.solaria.persistence.domain.entity.proposal.ProposalUnit;
+import com.solaria.persistence.domain.enums.proposal.ProposalStatus;
+import com.solaria.persistence.dto.request.proposal.ProposalUnitRequestDTO;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
+import com.solaria.persistence.dto.response.unit.LocalUnitResponseDTO;
+import com.solaria.persistence.dto.response.proposal.ProposalUnitResponseDTO;
import com.solaria.persistence.exception.BusinessRuleException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
import com.solaria.persistence.exception.UnauthorizedAccessException;
-import com.solaria.persistence.repository.LocalUnitRepository;
-import com.solaria.persistence.repository.ProposalItemRepository;
-import com.solaria.persistence.repository.ProposalUnitRepository;
+import com.solaria.persistence.repository.unit.LocalUnitRepository;
+import com.solaria.persistence.repository.proposal.ProposalItemRepository;
+import com.solaria.persistence.repository.proposal.ProposalUnitRepository;
@Service
public class ProposalUnitService {
diff --git a/src/main/java/com/solaria/persistence/service/AddressService.java b/src/main/java/com/solaria/persistence/service/shared/AddressService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/AddressService.java
rename to src/main/java/com/solaria/persistence/service/shared/AddressService.java
index ac08327..17a5c77 100644
--- a/src/main/java/com/solaria/persistence/service/AddressService.java
+++ b/src/main/java/com/solaria/persistence/service/shared/AddressService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.shared;
import java.util.List;
import java.util.UUID;
@@ -6,15 +6,15 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Address;
-import com.solaria.persistence.dto.request.AddressRequestDTO;
-import com.solaria.persistence.dto.response.AddressResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Address;
+import com.solaria.persistence.dto.request.shared.AddressRequestDTO;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.AddressRepository;
-import com.solaria.persistence.repository.CompanyRepository;
-import com.solaria.persistence.repository.GeolocalizationRepository;
-import com.solaria.persistence.repository.LocalUnitRepository;
+import com.solaria.persistence.repository.shared.AddressRepository;
+import com.solaria.persistence.repository.company.CompanyRepository;
+import com.solaria.persistence.repository.shared.GeolocalizationRepository;
+import com.solaria.persistence.repository.unit.LocalUnitRepository;
import tools.jackson.databind.ObjectMapper;
diff --git a/src/main/java/com/solaria/persistence/service/AuditService.java b/src/main/java/com/solaria/persistence/service/shared/AuditService.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/service/AuditService.java
rename to src/main/java/com/solaria/persistence/service/shared/AuditService.java
index 349c2ed..d9d8945 100644
--- a/src/main/java/com/solaria/persistence/service/AuditService.java
+++ b/src/main/java/com/solaria/persistence/service/shared/AuditService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.shared;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
diff --git a/src/main/java/com/solaria/persistence/service/CloudinaryService.java b/src/main/java/com/solaria/persistence/service/shared/CloudinaryService.java
similarity index 99%
rename from src/main/java/com/solaria/persistence/service/CloudinaryService.java
rename to src/main/java/com/solaria/persistence/service/shared/CloudinaryService.java
index 7c0d150..bf5e7b4 100644
--- a/src/main/java/com/solaria/persistence/service/CloudinaryService.java
+++ b/src/main/java/com/solaria/persistence/service/shared/CloudinaryService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.shared;
import java.io.IOException;
import java.util.Map;
diff --git a/src/main/java/com/solaria/persistence/service/ContactService.java b/src/main/java/com/solaria/persistence/service/shared/ContactService.java
similarity index 87%
rename from src/main/java/com/solaria/persistence/service/ContactService.java
rename to src/main/java/com/solaria/persistence/service/shared/ContactService.java
index 809897d..f040af6 100644
--- a/src/main/java/com/solaria/persistence/service/ContactService.java
+++ b/src/main/java/com/solaria/persistence/service/shared/ContactService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.shared;
import java.util.List;
import java.util.UUID;
@@ -8,13 +8,13 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.Contact;
-import com.solaria.persistence.dto.request.ContactRequestDTO;
-import com.solaria.persistence.dto.response.ContactResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Contact;
+import com.solaria.persistence.dto.request.shared.ContactRequestDTO;
+import com.solaria.persistence.dto.response.shared.ContactResponseDTO;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.ContactRepository;
-import com.solaria.persistence.repository.PersonRepository;
+import com.solaria.persistence.repository.shared.ContactRepository;
+import com.solaria.persistence.repository.identity.PersonRepository;
@Service
public class ContactService {
diff --git a/src/main/java/com/solaria/persistence/service/FluxLogService.java b/src/main/java/com/solaria/persistence/service/shared/FluxLogService.java
similarity index 80%
rename from src/main/java/com/solaria/persistence/service/FluxLogService.java
rename to src/main/java/com/solaria/persistence/service/shared/FluxLogService.java
index 671e617..ebb28f8 100644
--- a/src/main/java/com/solaria/persistence/service/FluxLogService.java
+++ b/src/main/java/com/solaria/persistence/service/shared/FluxLogService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.shared;
import java.time.OffsetDateTime;
import java.util.List;
@@ -7,13 +7,13 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.FluxLog;
-import com.solaria.persistence.domain.entity.User;
-import com.solaria.persistence.dto.request.FluxLogRequestDTO;
-import com.solaria.persistence.dto.response.FluxLogResponseDTO;
+import com.solaria.persistence.domain.entity.shared.FluxLog;
+import com.solaria.persistence.domain.entity.identity.User;
+import com.solaria.persistence.dto.request.shared.FluxLogRequestDTO;
+import com.solaria.persistence.dto.response.shared.FluxLogResponseDTO;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.FluxLogRepository;
-import com.solaria.persistence.repository.UserRepository;
+import com.solaria.persistence.repository.shared.FluxLogRepository;
+import com.solaria.persistence.repository.identity.UserRepository;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/GeolocalizationService.java b/src/main/java/com/solaria/persistence/service/shared/GeolocalizationService.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/service/GeolocalizationService.java
rename to src/main/java/com/solaria/persistence/service/shared/GeolocalizationService.java
index 607df98..bcc38de 100644
--- a/src/main/java/com/solaria/persistence/service/GeolocalizationService.java
+++ b/src/main/java/com/solaria/persistence/service/shared/GeolocalizationService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.shared;
import java.math.BigDecimal;
import java.util.List;
@@ -9,15 +9,15 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.Address;
-import com.solaria.persistence.domain.entity.Geolocalization;
-import com.solaria.persistence.dto.request.GeolocalizationRequestDTO;
-import com.solaria.persistence.dto.response.GeolocalizationResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Address;
+import com.solaria.persistence.domain.entity.shared.Geolocalization;
+import com.solaria.persistence.dto.request.shared.GeolocalizationRequestDTO;
+import com.solaria.persistence.dto.response.shared.GeolocalizationResponseDTO;
import com.solaria.persistence.exception.DuplicateResourceException;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.AddressRepository;
-import com.solaria.persistence.repository.GeolocalizationRepository;
+import com.solaria.persistence.repository.shared.AddressRepository;
+import com.solaria.persistence.repository.shared.GeolocalizationRepository;
@Service
public class GeolocalizationService {
diff --git a/src/main/java/com/solaria/persistence/service/EnergyBillService.java b/src/main/java/com/solaria/persistence/service/unit/EnergyBillService.java
similarity index 92%
rename from src/main/java/com/solaria/persistence/service/EnergyBillService.java
rename to src/main/java/com/solaria/persistence/service/unit/EnergyBillService.java
index 76b949a..ec686b7 100644
--- a/src/main/java/com/solaria/persistence/service/EnergyBillService.java
+++ b/src/main/java/com/solaria/persistence/service/unit/EnergyBillService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.unit;
import java.math.BigDecimal;
import java.util.List;
@@ -10,18 +10,19 @@
import org.springframework.web.multipart.MultipartFile;
import com.solaria.persistence.config.CloudinaryProperties;
-import com.solaria.persistence.domain.entity.EnergyBill;
-import com.solaria.persistence.domain.entity.LocalUnit;
-import com.solaria.persistence.dto.request.EnergyBillRequestDTO;
-import com.solaria.persistence.dto.response.EnergyBillResponseDTO;
+import com.solaria.persistence.domain.entity.unit.EnergyBill;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
+import com.solaria.persistence.dto.request.unit.EnergyBillRequestDTO;
+import com.solaria.persistence.dto.response.unit.EnergyBillResponseDTO;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.EnergyBillRepository;
-import com.solaria.persistence.repository.LocalUnitRepository;
+import com.solaria.persistence.repository.unit.EnergyBillRepository;
+import com.solaria.persistence.repository.unit.LocalUnitRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
-import com.solaria.persistence.service.CloudinaryService.UploadResult;
+import com.solaria.persistence.service.shared.CloudinaryService.UploadResult;
import tools.jackson.databind.ObjectMapper;
+import com.solaria.persistence.service.shared.CloudinaryService;
@Service
public class EnergyBillService {
diff --git a/src/main/java/com/solaria/persistence/service/LocalUnitPhotoService.java b/src/main/java/com/solaria/persistence/service/unit/LocalUnitPhotoService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/LocalUnitPhotoService.java
rename to src/main/java/com/solaria/persistence/service/unit/LocalUnitPhotoService.java
index 9c791e7..128251c 100644
--- a/src/main/java/com/solaria/persistence/service/LocalUnitPhotoService.java
+++ b/src/main/java/com/solaria/persistence/service/unit/LocalUnitPhotoService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.unit;
import java.time.OffsetDateTime;
import java.util.List;
@@ -10,14 +10,15 @@
import org.springframework.web.multipart.MultipartFile;
import com.solaria.persistence.config.CloudinaryProperties;
-import com.solaria.persistence.domain.entity.LocalUnit;
-import com.solaria.persistence.domain.entity.LocalUnitPhoto;
-import com.solaria.persistence.dto.response.LocalUnitPhotoResponseDTO;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
+import com.solaria.persistence.domain.entity.unit.LocalUnitPhoto;
+import com.solaria.persistence.dto.response.unit.LocalUnitPhotoResponseDTO;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.LocalUnitPhotoRepository;
-import com.solaria.persistence.repository.LocalUnitRepository;
+import com.solaria.persistence.repository.unit.LocalUnitPhotoRepository;
+import com.solaria.persistence.repository.unit.LocalUnitRepository;
import com.solaria.persistence.security.rbac.RbacAuthorizationService;
-import com.solaria.persistence.service.CloudinaryService.UploadResult;
+import com.solaria.persistence.service.shared.CloudinaryService.UploadResult;
+import com.solaria.persistence.service.shared.CloudinaryService;
@Service
public class LocalUnitPhotoService {
diff --git a/src/main/java/com/solaria/persistence/service/LocalUnitService.java b/src/main/java/com/solaria/persistence/service/unit/LocalUnitService.java
similarity index 88%
rename from src/main/java/com/solaria/persistence/service/LocalUnitService.java
rename to src/main/java/com/solaria/persistence/service/unit/LocalUnitService.java
index c5d7a6e..d1018e9 100644
--- a/src/main/java/com/solaria/persistence/service/LocalUnitService.java
+++ b/src/main/java/com/solaria/persistence/service/unit/LocalUnitService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.unit;
import java.util.List;
import java.util.UUID;
@@ -6,22 +6,22 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.solaria.persistence.domain.entity.Address;
-import com.solaria.persistence.domain.entity.LocalUnit;
-import com.solaria.persistence.domain.entity.Requester;
-import com.solaria.persistence.dto.request.LocalUnitRequestDTO;
-import com.solaria.persistence.dto.response.AddressResponseDTO;
-import com.solaria.persistence.dto.response.LocalUnitResponseDTO;
+import com.solaria.persistence.domain.entity.shared.Address;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
+import com.solaria.persistence.domain.entity.execution.Requester;
+import com.solaria.persistence.dto.request.unit.LocalUnitRequestDTO;
+import com.solaria.persistence.dto.response.shared.AddressResponseDTO;
+import com.solaria.persistence.dto.response.unit.LocalUnitResponseDTO;
import com.solaria.persistence.exception.InvalidFieldException;
import com.solaria.persistence.exception.ResourceInUseException;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.AddressRepository;
-import com.solaria.persistence.repository.EnergyBillRepository;
-import com.solaria.persistence.repository.LocalUnitPhotoRepository;
-import com.solaria.persistence.repository.LocalUnitRepository;
-import com.solaria.persistence.repository.ProposalUnitRepository;
-import com.solaria.persistence.repository.RequesterRepository;
-import com.solaria.persistence.repository.UnitSpecificationsRepository;
+import com.solaria.persistence.repository.shared.AddressRepository;
+import com.solaria.persistence.repository.unit.EnergyBillRepository;
+import com.solaria.persistence.repository.unit.LocalUnitPhotoRepository;
+import com.solaria.persistence.repository.unit.LocalUnitRepository;
+import com.solaria.persistence.repository.proposal.ProposalUnitRepository;
+import com.solaria.persistence.repository.execution.RequesterRepository;
+import com.solaria.persistence.repository.unit.UnitSpecificationsRepository;
@Service
diff --git a/src/main/java/com/solaria/persistence/service/UnitSpecificationsService.java b/src/main/java/com/solaria/persistence/service/unit/UnitSpecificationsService.java
similarity index 86%
rename from src/main/java/com/solaria/persistence/service/UnitSpecificationsService.java
rename to src/main/java/com/solaria/persistence/service/unit/UnitSpecificationsService.java
index 4b98c11..eccde6f 100644
--- a/src/main/java/com/solaria/persistence/service/UnitSpecificationsService.java
+++ b/src/main/java/com/solaria/persistence/service/unit/UnitSpecificationsService.java
@@ -1,4 +1,4 @@
-package com.solaria.persistence.service;
+package com.solaria.persistence.service.unit;
import java.time.OffsetDateTime;
import java.util.List;
@@ -9,13 +9,13 @@
import tools.jackson.databind.ObjectMapper;
-import com.solaria.persistence.domain.entity.LocalUnit;
-import com.solaria.persistence.domain.entity.UnitSpecifications;
-import com.solaria.persistence.dto.request.UnitSpecificationsRequestDTO;
-import com.solaria.persistence.dto.response.UnitSpecificationsResponseDTO;
+import com.solaria.persistence.domain.entity.unit.LocalUnit;
+import com.solaria.persistence.domain.entity.unit.UnitSpecifications;
+import com.solaria.persistence.dto.request.unit.UnitSpecificationsRequestDTO;
+import com.solaria.persistence.dto.response.unit.UnitSpecificationsResponseDTO;
import com.solaria.persistence.exception.ResourceNotFoundException;
-import com.solaria.persistence.repository.LocalUnitRepository;
-import com.solaria.persistence.repository.UnitSpecificationsRepository;
+import com.solaria.persistence.repository.unit.LocalUnitRepository;
+import com.solaria.persistence.repository.unit.UnitSpecificationsRepository;
@Service
public class UnitSpecificationsService {
diff --git a/src/main/java/com/solaria/persistence/util/CacheKeyGenerator.java b/src/main/java/com/solaria/persistence/util/CacheKeyGenerator.java
index a40a06f..bb0fa28 100644
--- a/src/main/java/com/solaria/persistence/util/CacheKeyGenerator.java
+++ b/src/main/java/com/solaria/persistence/util/CacheKeyGenerator.java
@@ -2,7 +2,7 @@
import org.springframework.stereotype.Component;
import com.solaria.persistence.config.RedisProperties;
-import com.solaria.persistence.dto.request.SupplierSearchFilterDTO;
+import com.solaria.persistence.dto.request.catalog.SupplierSearchFilterDTO;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;