diff --git a/pom.xml b/pom.xml
index e3b8e68..cc34c3c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,10 +9,10 @@
com.soupulsar
- soupulsar-modulith
+ soupulsar-monolith
0.0.1-SNAPSHOT
- SouPulsar Modulith
- Modulith Api for SouPulsar
+ SouPulsar Monolith
+ Monolith Api for SouPulsar
@@ -28,7 +28,6 @@
21
- 1.4.1
@@ -51,15 +50,6 @@
org.springframework.boot
spring-boot-starter-web
-
- org.springframework.modulith
- spring-modulith-starter-core
-
-
- org.springframework.modulith
- spring-modulith-starter-jpa
-
-
org.springframework.boot
spring-boot-devtools
@@ -71,16 +61,6 @@
h2
runtime
-
- org.springframework.modulith
- spring-modulith-actuator
- runtime
-
-
- org.springframework.modulith
- spring-modulith-observability
- runtime
-
org.mockito
mockito-core
@@ -97,11 +77,6 @@
spring-boot-starter-test
test
-
- org.springframework.modulith
- spring-modulith-starter-test
- test
-
org.springframework.security
spring-security-test
@@ -126,13 +101,6 @@
-
- org.springframework.modulith
- spring-modulith-bom
- ${spring-modulith.version}
- pom
- import
-
diff --git a/src/main/java/com/soupulsar/modulith/SouPulsarModulithApplication.java b/src/main/java/com/soupulsar/SouPulsarMonolithApplication.java
similarity index 58%
rename from src/main/java/com/soupulsar/modulith/SouPulsarModulithApplication.java
rename to src/main/java/com/soupulsar/SouPulsarMonolithApplication.java
index c24f2c2..0bbc17c 100644
--- a/src/main/java/com/soupulsar/modulith/SouPulsarModulithApplication.java
+++ b/src/main/java/com/soupulsar/SouPulsarMonolithApplication.java
@@ -1,13 +1,13 @@
-package com.soupulsar.modulith;
+package com.soupulsar;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
-public class SouPulsarModulithApplication {
+public class SouPulsarMonolithApplication {
public static void main(String[] args) {
- SpringApplication.run(SouPulsarModulithApplication.class, args);
+ SpringApplication.run(SouPulsarMonolithApplication.class, args);
}
}
diff --git a/src/main/java/com/soupulsar/modulith/auth/api/controllers/AuthController.java b/src/main/java/com/soupulsar/api/controllers/AuthController.java
similarity index 70%
rename from src/main/java/com/soupulsar/modulith/auth/api/controllers/AuthController.java
rename to src/main/java/com/soupulsar/api/controllers/AuthController.java
index 2300b8d..993d660 100644
--- a/src/main/java/com/soupulsar/modulith/auth/api/controllers/AuthController.java
+++ b/src/main/java/com/soupulsar/api/controllers/AuthController.java
@@ -1,11 +1,11 @@
-package com.soupulsar.modulith.auth.api.controllers;
+package com.soupulsar.api.controllers;
-import com.soupulsar.modulith.auth.application.dto.AuthUserRequest;
-import com.soupulsar.modulith.auth.application.dto.AuthUserResponse;
-import com.soupulsar.modulith.auth.application.dto.RegistrationRequest;
-import com.soupulsar.modulith.auth.application.dto.RegistrationResponse;
-import com.soupulsar.modulith.auth.application.usecase.AuthenticateUserUseCase;
-import com.soupulsar.modulith.auth.application.usecase.RegistrationUseCase;
+import com.soupulsar.application.dto.request.AuthUserRequest;
+import com.soupulsar.application.dto.response.AuthUserResponse;
+import com.soupulsar.application.dto.request.RegistrationRequest;
+import com.soupulsar.application.dto.response.RegistrationResponse;
+import com.soupulsar.application.usecase.AuthenticateUserUseCase;
+import com.soupulsar.application.usecase.RegistrationUseCase;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/api/controllers/AvailabilityController.java b/src/main/java/com/soupulsar/api/controllers/AvailabilityController.java
similarity index 73%
rename from src/main/java/com/soupulsar/modulith/scheduling/api/controllers/AvailabilityController.java
rename to src/main/java/com/soupulsar/api/controllers/AvailabilityController.java
index e616dd0..65beaf2 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/api/controllers/AvailabilityController.java
+++ b/src/main/java/com/soupulsar/api/controllers/AvailabilityController.java
@@ -1,8 +1,8 @@
-package com.soupulsar.modulith.scheduling.api.controllers;
+package com.soupulsar.api.controllers;
-import com.soupulsar.modulith.scheduling.application.dto.CreateAvailabilityRequest;
-import com.soupulsar.modulith.scheduling.application.dto.CreateAvailabilityResponse;
-import com.soupulsar.modulith.scheduling.application.usecase.CreateAvailabilityUseCase;
+import com.soupulsar.application.dto.request.CreateAvailabilityRequest;
+import com.soupulsar.application.dto.response.CreateAvailabilityResponse;
+import com.soupulsar.application.usecase.availability.CreateAvailabilityUseCase;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/api/controllers/SessionController.java b/src/main/java/com/soupulsar/api/controllers/SessionController.java
similarity index 67%
rename from src/main/java/com/soupulsar/modulith/scheduling/api/controllers/SessionController.java
rename to src/main/java/com/soupulsar/api/controllers/SessionController.java
index decad11..c5a9340 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/api/controllers/SessionController.java
+++ b/src/main/java/com/soupulsar/api/controllers/SessionController.java
@@ -1,10 +1,10 @@
-package com.soupulsar.modulith.scheduling.api.controllers;
+package com.soupulsar.api.controllers;
-import com.soupulsar.modulith.scheduling.application.dto.ScheduleSessionRequest;
-import com.soupulsar.modulith.scheduling.application.dto.ScheduleSessionResponse;
-import com.soupulsar.modulith.scheduling.application.dto.SessionResponse;
-import com.soupulsar.modulith.scheduling.application.usecase.CancelSessionUseCase;
-import com.soupulsar.modulith.scheduling.application.usecase.ScheduleSessionUseCase;
+import com.soupulsar.application.dto.request.ScheduleSessionRequest;
+import com.soupulsar.application.dto.response.ScheduleSessionResponse;
+import com.soupulsar.application.dto.response.SessionResponse;
+import com.soupulsar.application.usecase.session.CancelSessionUseCase;
+import com.soupulsar.application.usecase.session.ScheduleSessionUseCase;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
diff --git a/src/main/java/com/soupulsar/application/config/UseCaseConfig.java b/src/main/java/com/soupulsar/application/config/UseCaseConfig.java
new file mode 100644
index 0000000..704e695
--- /dev/null
+++ b/src/main/java/com/soupulsar/application/config/UseCaseConfig.java
@@ -0,0 +1,54 @@
+package com.soupulsar.application.config;
+
+import com.soupulsar.application.security.JwtService;
+import com.soupulsar.application.security.PasswordHasher;
+import com.soupulsar.application.usecase.AuthenticateUserUseCase;
+import com.soupulsar.application.usecase.RegistrationUseCase;
+import com.soupulsar.application.usecase.availability.CreateAvailabilityUseCase;
+import com.soupulsar.application.usecase.session.CancelSessionUseCase;
+import com.soupulsar.application.usecase.session.CompleteSessionUseCase;
+import com.soupulsar.application.usecase.session.ConfirmSessionUseCase;
+import com.soupulsar.application.usecase.session.ScheduleSessionUseCase;
+import com.soupulsar.domain.repository.*;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class UseCaseConfig {
+
+ @Bean
+ public CreateAvailabilityUseCase createAvailabilityUseCase(AvailabilityRepository availabilityRepository) {
+ return new CreateAvailabilityUseCase(availabilityRepository);
+ }
+
+ @Bean
+ public ScheduleSessionUseCase scheduleSessionUseCase(SessionRepository sessionRepository, AvailabilityRepository availabilityRepository, ApplicationEventPublisher publisher) {
+ return new ScheduleSessionUseCase(sessionRepository, availabilityRepository, publisher);
+ }
+
+ @Bean
+ public ConfirmSessionUseCase confirmSessionUseCase(SessionRepository sessionRepository) {
+ return new ConfirmSessionUseCase(sessionRepository);
+ }
+
+ @Bean
+ public CancelSessionUseCase cancelSessionUseCase(SessionRepository sessionRepository) {
+ return new CancelSessionUseCase(sessionRepository);
+ }
+
+ @Bean
+ public CompleteSessionUseCase completeSessionUseCase(SessionRepository sessionRepository) {
+ return new CompleteSessionUseCase(sessionRepository);
+ }
+ @Bean
+ public AuthenticateUserUseCase authenticateUserUseCase(UserRepository userRepository, PasswordHasher passwordHasher, JwtService jwtService) {
+ return new AuthenticateUserUseCase(userRepository, passwordHasher, jwtService);
+ }
+
+ @Bean
+ public RegistrationUseCase registrationUseCase(UserRepository userRepository, ClientProfileRepository clientProfileRepository,
+ SpecialistProfileRepository specialistProfileRepository, PasswordHasher passwordHasher) {
+ return new RegistrationUseCase(userRepository, clientProfileRepository, specialistProfileRepository,passwordHasher);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/dto/AuthUserRequest.java b/src/main/java/com/soupulsar/application/dto/request/AuthUserRequest.java
similarity index 78%
rename from src/main/java/com/soupulsar/modulith/auth/application/dto/AuthUserRequest.java
rename to src/main/java/com/soupulsar/application/dto/request/AuthUserRequest.java
index cd6ae0e..2de4f01 100644
--- a/src/main/java/com/soupulsar/modulith/auth/application/dto/AuthUserRequest.java
+++ b/src/main/java/com/soupulsar/application/dto/request/AuthUserRequest.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.application.dto;
+package com.soupulsar.application.dto.request;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/CreateAvailabilityRequest.java b/src/main/java/com/soupulsar/application/dto/request/CreateAvailabilityRequest.java
similarity index 85%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/dto/CreateAvailabilityRequest.java
rename to src/main/java/com/soupulsar/application/dto/request/CreateAvailabilityRequest.java
index b7f186d..1c9bcbb 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/CreateAvailabilityRequest.java
+++ b/src/main/java/com/soupulsar/application/dto/request/CreateAvailabilityRequest.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.scheduling.application.dto;
+package com.soupulsar.application.dto.request;
import jakarta.validation.constraints.NotBlank;
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/dto/RegistrationRequest.java b/src/main/java/com/soupulsar/application/dto/request/RegistrationRequest.java
similarity index 73%
rename from src/main/java/com/soupulsar/modulith/auth/application/dto/RegistrationRequest.java
rename to src/main/java/com/soupulsar/application/dto/request/RegistrationRequest.java
index 55562d1..3f015a4 100644
--- a/src/main/java/com/soupulsar/modulith/auth/application/dto/RegistrationRequest.java
+++ b/src/main/java/com/soupulsar/application/dto/request/RegistrationRequest.java
@@ -1,9 +1,9 @@
-package com.soupulsar.modulith.auth.application.dto;
+package com.soupulsar.application.dto.request;
-import com.soupulsar.modulith.auth.domain.model.enums.UserRole;
-import com.soupulsar.modulith.auth.domain.model.vo.Address;
-import com.soupulsar.modulith.auth.domain.model.vo.EmergencyContact;
-import com.soupulsar.modulith.auth.domain.model.vo.Presentation;
+import com.soupulsar.domain.model.enums.UserRole;
+import com.soupulsar.domain.model.vo.Address;
+import com.soupulsar.domain.model.vo.EmergencyContact;
+import com.soupulsar.domain.model.vo.Presentation;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.br.CPF;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/ScheduleSessionRequest.java b/src/main/java/com/soupulsar/application/dto/request/ScheduleSessionRequest.java
similarity index 85%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/dto/ScheduleSessionRequest.java
rename to src/main/java/com/soupulsar/application/dto/request/ScheduleSessionRequest.java
index a5943d5..4c00371 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/ScheduleSessionRequest.java
+++ b/src/main/java/com/soupulsar/application/dto/request/ScheduleSessionRequest.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.scheduling.application.dto;
+package com.soupulsar.application.dto.request;
import jakarta.validation.constraints.NotBlank;
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/dto/AuthUserResponse.java b/src/main/java/com/soupulsar/application/dto/response/AuthUserResponse.java
similarity index 77%
rename from src/main/java/com/soupulsar/modulith/auth/application/dto/AuthUserResponse.java
rename to src/main/java/com/soupulsar/application/dto/response/AuthUserResponse.java
index 1eeed24..f139e9b 100644
--- a/src/main/java/com/soupulsar/modulith/auth/application/dto/AuthUserResponse.java
+++ b/src/main/java/com/soupulsar/application/dto/response/AuthUserResponse.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.application.dto;
+package com.soupulsar.application.dto.response;
import java.util.Date;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/CreateAvailabilityResponse.java b/src/main/java/com/soupulsar/application/dto/response/CreateAvailabilityResponse.java
similarity index 81%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/dto/CreateAvailabilityResponse.java
rename to src/main/java/com/soupulsar/application/dto/response/CreateAvailabilityResponse.java
index f92aeec..c1f9a95 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/CreateAvailabilityResponse.java
+++ b/src/main/java/com/soupulsar/application/dto/response/CreateAvailabilityResponse.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.scheduling.application.dto;
+package com.soupulsar.application.dto.response;
-import com.soupulsar.modulith.scheduling.domain.model.Availability;
+import com.soupulsar.domain.model.availability.Availability;
import java.time.DayOfWeek;
import java.time.LocalTime;
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/dto/RegistrationResponse.java b/src/main/java/com/soupulsar/application/dto/response/RegistrationResponse.java
similarity index 62%
rename from src/main/java/com/soupulsar/modulith/auth/application/dto/RegistrationResponse.java
rename to src/main/java/com/soupulsar/application/dto/response/RegistrationResponse.java
index 800c398..15fd082 100644
--- a/src/main/java/com/soupulsar/modulith/auth/application/dto/RegistrationResponse.java
+++ b/src/main/java/com/soupulsar/application/dto/response/RegistrationResponse.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.application.dto;
+package com.soupulsar.application.dto.response;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/ScheduleSessionResponse.java b/src/main/java/com/soupulsar/application/dto/response/ScheduleSessionResponse.java
similarity index 81%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/dto/ScheduleSessionResponse.java
rename to src/main/java/com/soupulsar/application/dto/response/ScheduleSessionResponse.java
index 1e6d075..464a6fe 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/ScheduleSessionResponse.java
+++ b/src/main/java/com/soupulsar/application/dto/response/ScheduleSessionResponse.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.scheduling.application.dto;
+package com.soupulsar.application.dto.response;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
+import com.soupulsar.domain.model.session.Session;
import java.time.LocalDateTime;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/SessionResponse.java b/src/main/java/com/soupulsar/application/dto/response/SessionResponse.java
similarity index 74%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/dto/SessionResponse.java
rename to src/main/java/com/soupulsar/application/dto/response/SessionResponse.java
index 72a0ce6..a46f104 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/dto/SessionResponse.java
+++ b/src/main/java/com/soupulsar/application/dto/response/SessionResponse.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.scheduling.application.dto;
+package com.soupulsar.application.dto.response;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.model.enums.SessionStatus;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.model.enums.SessionStatus;
import java.time.LocalDateTime;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/security/JwtService.java b/src/main/java/com/soupulsar/application/security/JwtService.java
similarity index 95%
rename from src/main/java/com/soupulsar/modulith/auth/application/security/JwtService.java
rename to src/main/java/com/soupulsar/application/security/JwtService.java
index 478f5b7..f20fbaa 100644
--- a/src/main/java/com/soupulsar/modulith/auth/application/security/JwtService.java
+++ b/src/main/java/com/soupulsar/application/security/JwtService.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.application.security;
+package com.soupulsar.application.security;
-import com.soupulsar.modulith.auth.domain.model.User;
+import com.soupulsar.domain.model.user.User;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/security/PasswordHasher.java b/src/main/java/com/soupulsar/application/security/PasswordHasher.java
similarity index 70%
rename from src/main/java/com/soupulsar/modulith/auth/application/security/PasswordHasher.java
rename to src/main/java/com/soupulsar/application/security/PasswordHasher.java
index 6aa709b..aaf7019 100644
--- a/src/main/java/com/soupulsar/modulith/auth/application/security/PasswordHasher.java
+++ b/src/main/java/com/soupulsar/application/security/PasswordHasher.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.application.security;
+package com.soupulsar.application.security;
public interface PasswordHasher {
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/usecase/AuthenticateUserUseCase.java b/src/main/java/com/soupulsar/application/usecase/AuthenticateUserUseCase.java
similarity index 72%
rename from src/main/java/com/soupulsar/modulith/auth/application/usecase/AuthenticateUserUseCase.java
rename to src/main/java/com/soupulsar/application/usecase/AuthenticateUserUseCase.java
index 2ebe357..65b5927 100644
--- a/src/main/java/com/soupulsar/modulith/auth/application/usecase/AuthenticateUserUseCase.java
+++ b/src/main/java/com/soupulsar/application/usecase/AuthenticateUserUseCase.java
@@ -1,12 +1,12 @@
-package com.soupulsar.modulith.auth.application.usecase;
-
-import com.soupulsar.modulith.auth.application.dto.AuthUserRequest;
-import com.soupulsar.modulith.auth.application.dto.AuthUserResponse;
-import com.soupulsar.modulith.auth.application.security.JwtService;
-import com.soupulsar.modulith.auth.application.security.PasswordHasher;
-import com.soupulsar.modulith.auth.domain.model.User;
-import com.soupulsar.modulith.auth.domain.model.enums.UserStatus;
-import com.soupulsar.modulith.auth.domain.repository.UserRepository;
+package com.soupulsar.application.usecase;
+
+import com.soupulsar.application.dto.request.AuthUserRequest;
+import com.soupulsar.application.dto.response.AuthUserResponse;
+import com.soupulsar.application.security.JwtService;
+import com.soupulsar.application.security.PasswordHasher;
+import com.soupulsar.domain.model.user.User;
+import com.soupulsar.domain.model.enums.UserStatus;
+import com.soupulsar.domain.repository.UserRepository;
import io.jsonwebtoken.Claims;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/usecase/RegistrationUseCase.java b/src/main/java/com/soupulsar/application/usecase/RegistrationUseCase.java
similarity index 75%
rename from src/main/java/com/soupulsar/modulith/auth/application/usecase/RegistrationUseCase.java
rename to src/main/java/com/soupulsar/application/usecase/RegistrationUseCase.java
index a1abb6c..7acd3da 100644
--- a/src/main/java/com/soupulsar/modulith/auth/application/usecase/RegistrationUseCase.java
+++ b/src/main/java/com/soupulsar/application/usecase/RegistrationUseCase.java
@@ -1,15 +1,15 @@
-package com.soupulsar.modulith.auth.application.usecase;
+package com.soupulsar.application.usecase;
-import com.soupulsar.modulith.auth.application.dto.RegistrationRequest;
-import com.soupulsar.modulith.auth.application.dto.RegistrationResponse;
-import com.soupulsar.modulith.auth.application.security.PasswordHasher;
-import com.soupulsar.modulith.auth.domain.model.ClientProfile;
-import com.soupulsar.modulith.auth.domain.model.SpecialistProfile;
-import com.soupulsar.modulith.auth.domain.model.User;
-import com.soupulsar.modulith.auth.domain.model.enums.UserRole;
-import com.soupulsar.modulith.auth.domain.repository.ClientProfileRepository;
-import com.soupulsar.modulith.auth.domain.repository.SpecialistProfileRepository;
-import com.soupulsar.modulith.auth.domain.repository.UserRepository;
+import com.soupulsar.application.dto.request.RegistrationRequest;
+import com.soupulsar.application.dto.response.RegistrationResponse;
+import com.soupulsar.application.security.PasswordHasher;
+import com.soupulsar.domain.model.client.ClientProfile;
+import com.soupulsar.domain.model.specialist.SpecialistProfile;
+import com.soupulsar.domain.model.user.User;
+import com.soupulsar.domain.model.enums.UserRole;
+import com.soupulsar.domain.repository.ClientProfileRepository;
+import com.soupulsar.domain.repository.SpecialistProfileRepository;
+import com.soupulsar.domain.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CreateAvailabilityUseCase.java b/src/main/java/com/soupulsar/application/usecase/availability/CreateAvailabilityUseCase.java
similarity index 68%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CreateAvailabilityUseCase.java
rename to src/main/java/com/soupulsar/application/usecase/availability/CreateAvailabilityUseCase.java
index 0eff55c..17c0720 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CreateAvailabilityUseCase.java
+++ b/src/main/java/com/soupulsar/application/usecase/availability/CreateAvailabilityUseCase.java
@@ -1,9 +1,9 @@
-package com.soupulsar.modulith.scheduling.application.usecase;
+package com.soupulsar.application.usecase.availability;
-import com.soupulsar.modulith.scheduling.application.dto.CreateAvailabilityRequest;
-import com.soupulsar.modulith.scheduling.application.dto.CreateAvailabilityResponse;
-import com.soupulsar.modulith.scheduling.domain.model.Availability;
-import com.soupulsar.modulith.scheduling.domain.repository.AvailabilityRepository;
+import com.soupulsar.application.dto.request.CreateAvailabilityRequest;
+import com.soupulsar.application.dto.response.CreateAvailabilityResponse;
+import com.soupulsar.domain.model.availability.Availability;
+import com.soupulsar.domain.repository.AvailabilityRepository;
import lombok.RequiredArgsConstructor;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CancelSessionUseCase.java b/src/main/java/com/soupulsar/application/usecase/session/CancelSessionUseCase.java
similarity index 65%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CancelSessionUseCase.java
rename to src/main/java/com/soupulsar/application/usecase/session/CancelSessionUseCase.java
index 63e53fc..d7093bc 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CancelSessionUseCase.java
+++ b/src/main/java/com/soupulsar/application/usecase/session/CancelSessionUseCase.java
@@ -1,8 +1,8 @@
-package com.soupulsar.modulith.scheduling.application.usecase;
+package com.soupulsar.application.usecase.session;
-import com.soupulsar.modulith.scheduling.application.dto.SessionResponse;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.repository.SessionRepository;
+import com.soupulsar.application.dto.response.SessionResponse;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.repository.SessionRepository;
import lombok.RequiredArgsConstructor;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CompleteSessionUseCase.java b/src/main/java/com/soupulsar/application/usecase/session/CompleteSessionUseCase.java
similarity index 69%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CompleteSessionUseCase.java
rename to src/main/java/com/soupulsar/application/usecase/session/CompleteSessionUseCase.java
index 928a2e3..cc567e8 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/CompleteSessionUseCase.java
+++ b/src/main/java/com/soupulsar/application/usecase/session/CompleteSessionUseCase.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.scheduling.application.usecase;
+package com.soupulsar.application.usecase.session;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.repository.SessionRepository;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.repository.SessionRepository;
import lombok.RequiredArgsConstructor;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/ConfirmSessionUseCase.java b/src/main/java/com/soupulsar/application/usecase/session/ConfirmSessionUseCase.java
similarity index 69%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/usecase/ConfirmSessionUseCase.java
rename to src/main/java/com/soupulsar/application/usecase/session/ConfirmSessionUseCase.java
index b418e57..56f681b 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/ConfirmSessionUseCase.java
+++ b/src/main/java/com/soupulsar/application/usecase/session/ConfirmSessionUseCase.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.scheduling.application.usecase;
+package com.soupulsar.application.usecase.session;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.repository.SessionRepository;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.repository.SessionRepository;
import lombok.RequiredArgsConstructor;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/ScheduleSessionUseCase.java b/src/main/java/com/soupulsar/application/usecase/session/ScheduleSessionUseCase.java
similarity index 76%
rename from src/main/java/com/soupulsar/modulith/scheduling/application/usecase/ScheduleSessionUseCase.java
rename to src/main/java/com/soupulsar/application/usecase/session/ScheduleSessionUseCase.java
index 152454f..94718fd 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/usecase/ScheduleSessionUseCase.java
+++ b/src/main/java/com/soupulsar/application/usecase/session/ScheduleSessionUseCase.java
@@ -1,12 +1,12 @@
-package com.soupulsar.modulith.scheduling.application.usecase;
-
-import com.soupulsar.modulith.scheduling.application.dto.ScheduleSessionRequest;
-import com.soupulsar.modulith.scheduling.application.dto.ScheduleSessionResponse;
-import com.soupulsar.modulith.scheduling.domain.events.SessionScheduledEvent;
-import com.soupulsar.modulith.scheduling.domain.model.Availability;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.repository.AvailabilityRepository;
-import com.soupulsar.modulith.scheduling.domain.repository.SessionRepository;
+package com.soupulsar.application.usecase.session;
+
+import com.soupulsar.application.dto.request.ScheduleSessionRequest;
+import com.soupulsar.application.dto.response.ScheduleSessionResponse;
+import com.soupulsar.domain.event.SessionScheduledEvent;
+import com.soupulsar.domain.model.availability.Availability;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.repository.AvailabilityRepository;
+import com.soupulsar.domain.repository.SessionRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.context.ApplicationEventPublisher;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/domain/events/SessionScheduledEvent.java b/src/main/java/com/soupulsar/domain/event/SessionScheduledEvent.java
similarity index 74%
rename from src/main/java/com/soupulsar/modulith/scheduling/domain/events/SessionScheduledEvent.java
rename to src/main/java/com/soupulsar/domain/event/SessionScheduledEvent.java
index 0ac2588..1d24a0b 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/domain/events/SessionScheduledEvent.java
+++ b/src/main/java/com/soupulsar/domain/event/SessionScheduledEvent.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.scheduling.domain.events;
+package com.soupulsar.domain.event;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.model.enums.SessionStatus;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.model.enums.SessionStatus;
import java.time.LocalDateTime;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/domain/model/Availability.java b/src/main/java/com/soupulsar/domain/model/availability/Availability.java
similarity index 95%
rename from src/main/java/com/soupulsar/modulith/scheduling/domain/model/Availability.java
rename to src/main/java/com/soupulsar/domain/model/availability/Availability.java
index bbbb48d..2827808 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/domain/model/Availability.java
+++ b/src/main/java/com/soupulsar/domain/model/availability/Availability.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.scheduling.domain.model;
+package com.soupulsar.domain.model.availability;
import lombok.Getter;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/ClientProfile.java b/src/main/java/com/soupulsar/domain/model/client/ClientProfile.java
similarity index 92%
rename from src/main/java/com/soupulsar/modulith/auth/domain/model/ClientProfile.java
rename to src/main/java/com/soupulsar/domain/model/client/ClientProfile.java
index b293243..3944860 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/ClientProfile.java
+++ b/src/main/java/com/soupulsar/domain/model/client/ClientProfile.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.domain.model;
+package com.soupulsar.domain.model.client;
-import com.soupulsar.modulith.auth.domain.model.vo.EmergencyContact;
+import com.soupulsar.domain.model.vo.EmergencyContact;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/enums/RelationshipDegree.java b/src/main/java/com/soupulsar/domain/model/enums/RelationshipDegree.java
similarity index 79%
rename from src/main/java/com/soupulsar/modulith/auth/domain/model/enums/RelationshipDegree.java
rename to src/main/java/com/soupulsar/domain/model/enums/RelationshipDegree.java
index 5a70e09..1f1a137 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/enums/RelationshipDegree.java
+++ b/src/main/java/com/soupulsar/domain/model/enums/RelationshipDegree.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.domain.model.enums;
+package com.soupulsar.domain.model.enums;
public enum RelationshipDegree {
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/domain/model/enums/SessionStatus.java b/src/main/java/com/soupulsar/domain/model/enums/SessionStatus.java
similarity index 89%
rename from src/main/java/com/soupulsar/modulith/scheduling/domain/model/enums/SessionStatus.java
rename to src/main/java/com/soupulsar/domain/model/enums/SessionStatus.java
index 69624c3..9875dfd 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/domain/model/enums/SessionStatus.java
+++ b/src/main/java/com/soupulsar/domain/model/enums/SessionStatus.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.scheduling.domain.model.enums;
+package com.soupulsar.domain.model.enums;
/**
* Represents the possible states of a session.
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/enums/UserRole.java b/src/main/java/com/soupulsar/domain/model/enums/UserRole.java
similarity index 53%
rename from src/main/java/com/soupulsar/modulith/auth/domain/model/enums/UserRole.java
rename to src/main/java/com/soupulsar/domain/model/enums/UserRole.java
index a2d211e..a8851c6 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/enums/UserRole.java
+++ b/src/main/java/com/soupulsar/domain/model/enums/UserRole.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.domain.model.enums;
+package com.soupulsar.domain.model.enums;
public enum UserRole {
diff --git a/src/main/java/com/soupulsar/domain/model/enums/UserStatus.java b/src/main/java/com/soupulsar/domain/model/enums/UserStatus.java
new file mode 100644
index 0000000..a042268
--- /dev/null
+++ b/src/main/java/com/soupulsar/domain/model/enums/UserStatus.java
@@ -0,0 +1,6 @@
+package com.soupulsar.domain.model.enums;
+
+public enum UserStatus {
+ ACTIVE,
+ INACTIVE,
+}
\ No newline at end of file
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/domain/model/Session.java b/src/main/java/com/soupulsar/domain/model/session/Session.java
similarity index 94%
rename from src/main/java/com/soupulsar/modulith/scheduling/domain/model/Session.java
rename to src/main/java/com/soupulsar/domain/model/session/Session.java
index a706c9e..de5ccfc 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/domain/model/Session.java
+++ b/src/main/java/com/soupulsar/domain/model/session/Session.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.scheduling.domain.model;
+package com.soupulsar.domain.model.session;
-import com.soupulsar.modulith.scheduling.domain.model.enums.SessionStatus;
+import com.soupulsar.domain.model.enums.SessionStatus;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/SpecialistProfile.java b/src/main/java/com/soupulsar/domain/model/specialist/SpecialistProfile.java
similarity index 94%
rename from src/main/java/com/soupulsar/modulith/auth/domain/model/SpecialistProfile.java
rename to src/main/java/com/soupulsar/domain/model/specialist/SpecialistProfile.java
index f0235c4..35a7e2d 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/SpecialistProfile.java
+++ b/src/main/java/com/soupulsar/domain/model/specialist/SpecialistProfile.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.domain.model;
+package com.soupulsar.domain.model.specialist;
-import com.soupulsar.modulith.auth.domain.model.vo.Presentation;
+import com.soupulsar.domain.model.vo.Presentation;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/User.java b/src/main/java/com/soupulsar/domain/model/user/User.java
similarity index 91%
rename from src/main/java/com/soupulsar/modulith/auth/domain/model/User.java
rename to src/main/java/com/soupulsar/domain/model/user/User.java
index 983fd7e..05f6298 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/User.java
+++ b/src/main/java/com/soupulsar/domain/model/user/User.java
@@ -1,8 +1,8 @@
-package com.soupulsar.modulith.auth.domain.model;
+package com.soupulsar.domain.model.user;
-import com.soupulsar.modulith.auth.domain.model.enums.UserRole;
-import com.soupulsar.modulith.auth.domain.model.enums.UserStatus;
-import com.soupulsar.modulith.auth.domain.model.vo.Address;
+import com.soupulsar.domain.model.enums.UserRole;
+import com.soupulsar.domain.model.enums.UserStatus;
+import com.soupulsar.domain.model.vo.Address;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/vo/Address.java b/src/main/java/com/soupulsar/domain/model/vo/Address.java
similarity index 90%
rename from src/main/java/com/soupulsar/modulith/auth/domain/model/vo/Address.java
rename to src/main/java/com/soupulsar/domain/model/vo/Address.java
index d6a13df..0e222b4 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/vo/Address.java
+++ b/src/main/java/com/soupulsar/domain/model/vo/Address.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.domain.model.vo;
+package com.soupulsar.domain.model.vo;
import lombok.Builder;
import lombok.Value;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/vo/EmergencyContact.java b/src/main/java/com/soupulsar/domain/model/vo/EmergencyContact.java
similarity index 78%
rename from src/main/java/com/soupulsar/modulith/auth/domain/model/vo/EmergencyContact.java
rename to src/main/java/com/soupulsar/domain/model/vo/EmergencyContact.java
index b7561b1..6268738 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/vo/EmergencyContact.java
+++ b/src/main/java/com/soupulsar/domain/model/vo/EmergencyContact.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.domain.model.vo;
+package com.soupulsar.domain.model.vo;
-import com.soupulsar.modulith.auth.domain.model.enums.RelationshipDegree;
+import com.soupulsar.domain.model.enums.RelationshipDegree;
import lombok.Builder;
import lombok.Value;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/vo/Presentation.java b/src/main/java/com/soupulsar/domain/model/vo/Presentation.java
similarity index 78%
rename from src/main/java/com/soupulsar/modulith/auth/domain/model/vo/Presentation.java
rename to src/main/java/com/soupulsar/domain/model/vo/Presentation.java
index bffbf3b..b465f72 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/vo/Presentation.java
+++ b/src/main/java/com/soupulsar/domain/model/vo/Presentation.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.domain.model.vo;
+package com.soupulsar.domain.model.vo;
import lombok.Builder;
import lombok.Value;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/domain/repository/AvailabilityRepository.java b/src/main/java/com/soupulsar/domain/repository/AvailabilityRepository.java
similarity index 71%
rename from src/main/java/com/soupulsar/modulith/scheduling/domain/repository/AvailabilityRepository.java
rename to src/main/java/com/soupulsar/domain/repository/AvailabilityRepository.java
index 327d609..9af3fb7 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/domain/repository/AvailabilityRepository.java
+++ b/src/main/java/com/soupulsar/domain/repository/AvailabilityRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.scheduling.domain.repository;
+package com.soupulsar.domain.repository;
-import com.soupulsar.modulith.scheduling.domain.model.Availability;
+import com.soupulsar.domain.model.availability.Availability;
import java.time.DayOfWeek;
import java.util.List;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/repository/ClientProfileRepository.java b/src/main/java/com/soupulsar/domain/repository/ClientProfileRepository.java
similarity index 62%
rename from src/main/java/com/soupulsar/modulith/auth/domain/repository/ClientProfileRepository.java
rename to src/main/java/com/soupulsar/domain/repository/ClientProfileRepository.java
index 290d589..c5ae9f9 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/repository/ClientProfileRepository.java
+++ b/src/main/java/com/soupulsar/domain/repository/ClientProfileRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.domain.repository;
+package com.soupulsar.domain.repository;
-import com.soupulsar.modulith.auth.domain.model.ClientProfile;
+import com.soupulsar.domain.model.client.ClientProfile;
import java.util.Optional;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/domain/repository/SessionRepository.java b/src/main/java/com/soupulsar/domain/repository/SessionRepository.java
similarity index 73%
rename from src/main/java/com/soupulsar/modulith/scheduling/domain/repository/SessionRepository.java
rename to src/main/java/com/soupulsar/domain/repository/SessionRepository.java
index cfa730f..c906ef8 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/domain/repository/SessionRepository.java
+++ b/src/main/java/com/soupulsar/domain/repository/SessionRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.scheduling.domain.repository;
+package com.soupulsar.domain.repository;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
+import com.soupulsar.domain.model.session.Session;
import java.time.LocalDateTime;
import java.util.List;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/repository/SpecialistProfileRepository.java b/src/main/java/com/soupulsar/domain/repository/SpecialistProfileRepository.java
similarity index 63%
rename from src/main/java/com/soupulsar/modulith/auth/domain/repository/SpecialistProfileRepository.java
rename to src/main/java/com/soupulsar/domain/repository/SpecialistProfileRepository.java
index e8af6ee..41b796a 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/repository/SpecialistProfileRepository.java
+++ b/src/main/java/com/soupulsar/domain/repository/SpecialistProfileRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.domain.repository;
+package com.soupulsar.domain.repository;
-import com.soupulsar.modulith.auth.domain.model.SpecialistProfile;
+import com.soupulsar.domain.model.specialist.SpecialistProfile;
import java.util.Optional;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/repository/UserRepository.java b/src/main/java/com/soupulsar/domain/repository/UserRepository.java
similarity index 74%
rename from src/main/java/com/soupulsar/modulith/auth/domain/repository/UserRepository.java
rename to src/main/java/com/soupulsar/domain/repository/UserRepository.java
index df05b89..225f1ac 100644
--- a/src/main/java/com/soupulsar/modulith/auth/domain/repository/UserRepository.java
+++ b/src/main/java/com/soupulsar/domain/repository/UserRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.domain.repository;
+package com.soupulsar.domain.repository;
-import com.soupulsar.modulith.auth.domain.model.User;
+import com.soupulsar.domain.model.user.User;
import java.util.Optional;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/entity/AvailabilityEntity.java b/src/main/java/com/soupulsar/infrastructure/persistence/entity/availability/AvailabilityEntity.java
similarity index 90%
rename from src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/entity/AvailabilityEntity.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/entity/availability/AvailabilityEntity.java
index 4f8b091..5b68bcc 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/entity/AvailabilityEntity.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/entity/availability/AvailabilityEntity.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.scheduling.infratructure.persistence.entity;
+package com.soupulsar.infrastructure.persistence.entity.availability;
import jakarta.persistence.*;
import lombok.Getter;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/ClientProfileEntity.java b/src/main/java/com/soupulsar/infrastructure/persistence/entity/client/ClientProfileEntity.java
similarity index 82%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/ClientProfileEntity.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/entity/client/ClientProfileEntity.java
index 1149a1f..236d15b 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/ClientProfileEntity.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/entity/client/ClientProfileEntity.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.entity;
+package com.soupulsar.infrastructure.persistence.entity.client;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
@@ -27,6 +27,6 @@ public class ClientProfileEntity {
private Date dateOfBirth;
@Embedded
- private EmergencyContactEmbeddable emergencyContact;
+ private EmergencyContactEmbeddable emergencyContact;
}
\ No newline at end of file
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/EmergencyContactEmbeddable.java b/src/main/java/com/soupulsar/infrastructure/persistence/entity/client/EmergencyContactEmbeddable.java
similarity index 77%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/EmergencyContactEmbeddable.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/entity/client/EmergencyContactEmbeddable.java
index f4dd622..011826d 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/EmergencyContactEmbeddable.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/entity/client/EmergencyContactEmbeddable.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.entity;
+package com.soupulsar.infrastructure.persistence.entity.client;
-import com.soupulsar.modulith.auth.domain.model.enums.RelationshipDegree;
+import com.soupulsar.domain.model.enums.RelationshipDegree;
import jakarta.persistence.Embeddable;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/entity/SessionEntity.java b/src/main/java/com/soupulsar/infrastructure/persistence/entity/session/SessionEntity.java
similarity index 86%
rename from src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/entity/SessionEntity.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/entity/session/SessionEntity.java
index 443eef4..ee84168 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/entity/SessionEntity.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/entity/session/SessionEntity.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.scheduling.infratructure.persistence.entity;
+package com.soupulsar.infrastructure.persistence.entity.session;
-import com.soupulsar.modulith.scheduling.domain.model.enums.SessionStatus;
+import com.soupulsar.domain.model.enums.SessionStatus;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/PresentationEmbeddable.java b/src/main/java/com/soupulsar/infrastructure/persistence/entity/specialist/PresentationEmbeddable.java
similarity index 88%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/PresentationEmbeddable.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/entity/specialist/PresentationEmbeddable.java
index b30d2bf..2336498 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/PresentationEmbeddable.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/entity/specialist/PresentationEmbeddable.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.entity;
+package com.soupulsar.infrastructure.persistence.entity.specialist;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/SpecialistProfileEntity.java b/src/main/java/com/soupulsar/infrastructure/persistence/entity/specialist/SpecialistProfileEntity.java
similarity index 95%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/SpecialistProfileEntity.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/entity/specialist/SpecialistProfileEntity.java
index 422b240..c5364c5 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/SpecialistProfileEntity.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/entity/specialist/SpecialistProfileEntity.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.entity;
+package com.soupulsar.infrastructure.persistence.entity.specialist;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/AddressEmbeddable.java b/src/main/java/com/soupulsar/infrastructure/persistence/entity/user/AddressEmbeddable.java
similarity index 85%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/AddressEmbeddable.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/entity/user/AddressEmbeddable.java
index 6e53661..96659f8 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/AddressEmbeddable.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/entity/user/AddressEmbeddable.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.entity;
+package com.soupulsar.infrastructure.persistence.entity.user;
import jakarta.persistence.Embeddable;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/UserEntity.java b/src/main/java/com/soupulsar/infrastructure/persistence/entity/user/UserEntity.java
similarity index 85%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/UserEntity.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/entity/user/UserEntity.java
index ac0c372..e6e0255 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/entity/UserEntity.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/entity/user/UserEntity.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.entity;
+package com.soupulsar.infrastructure.persistence.entity.user;
-import com.soupulsar.modulith.auth.domain.model.enums.UserRole;
-import com.soupulsar.modulith.auth.domain.model.enums.UserStatus;
+import com.soupulsar.domain.model.enums.UserRole;
+import com.soupulsar.domain.model.enums.UserStatus;
import jakarta.persistence.Column;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/AddressMapper.java b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/AddressMapper.java
similarity index 82%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/AddressMapper.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/mapper/AddressMapper.java
index 754472b..d96c382 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/AddressMapper.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/AddressMapper.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.mapper;
+package com.soupulsar.infrastructure.persistence.mapper;
-import com.soupulsar.modulith.auth.domain.model.vo.Address;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.AddressEmbeddable;
+import com.soupulsar.domain.model.vo.Address;
+import com.soupulsar.infrastructure.persistence.entity.user.AddressEmbeddable;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/mapper/AvailabilityMapper.java b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/AvailabilityMapper.java
similarity index 79%
rename from src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/mapper/AvailabilityMapper.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/mapper/AvailabilityMapper.java
index f34efa8..d6cd5e7 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/mapper/AvailabilityMapper.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/AvailabilityMapper.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.scheduling.infratructure.persistence.mapper;
+package com.soupulsar.infrastructure.persistence.mapper;
-import com.soupulsar.modulith.scheduling.domain.model.Availability;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.entity.AvailabilityEntity;
+import com.soupulsar.domain.model.availability.Availability;
+import com.soupulsar.infrastructure.persistence.entity.availability.AvailabilityEntity;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/mapper/SessionMapper.java b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/SessionMapper.java
similarity index 81%
rename from src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/mapper/SessionMapper.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/mapper/SessionMapper.java
index 191187b..7f7b812 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/mapper/SessionMapper.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/SessionMapper.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.scheduling.infratructure.persistence.mapper;
+package com.soupulsar.infrastructure.persistence.mapper;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.entity.SessionEntity;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.infrastructure.persistence.entity.session.SessionEntity;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/UserMapper.java b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/UserMapper.java
similarity index 85%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/UserMapper.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/mapper/UserMapper.java
index 5513c5c..d9f5972 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/UserMapper.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/UserMapper.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.mapper;
+package com.soupulsar.infrastructure.persistence.mapper;
-import com.soupulsar.modulith.auth.domain.model.User;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.UserEntity;
+import com.soupulsar.domain.model.user.User;
+import com.soupulsar.infrastructure.persistence.entity.user.UserEntity;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/ClientProfileMapper.java b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/client/ClientProfileMapper.java
similarity index 82%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/ClientProfileMapper.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/mapper/client/ClientProfileMapper.java
index 5eac8f6..5993dcf 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/ClientProfileMapper.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/client/ClientProfileMapper.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.mapper;
+package com.soupulsar.infrastructure.persistence.mapper.client;
-import com.soupulsar.modulith.auth.domain.model.ClientProfile;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.ClientProfileEntity;
+import com.soupulsar.domain.model.client.ClientProfile;
+import com.soupulsar.infrastructure.persistence.entity.client.ClientProfileEntity;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/EmergencyContactMapper.java b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/client/EmergencyContactMapper.java
similarity index 80%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/EmergencyContactMapper.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/mapper/client/EmergencyContactMapper.java
index 280ec8c..0301344 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/EmergencyContactMapper.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/client/EmergencyContactMapper.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.mapper;
+package com.soupulsar.infrastructure.persistence.mapper.client;
-import com.soupulsar.modulith.auth.domain.model.vo.EmergencyContact;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.EmergencyContactEmbeddable;
+import com.soupulsar.domain.model.vo.EmergencyContact;
+import com.soupulsar.infrastructure.persistence.entity.client.EmergencyContactEmbeddable;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/PresentationMapper.java b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/specialist/PresentationMapper.java
similarity index 82%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/PresentationMapper.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/mapper/specialist/PresentationMapper.java
index 88a5930..0e40300 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/PresentationMapper.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/specialist/PresentationMapper.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.mapper;
+package com.soupulsar.infrastructure.persistence.mapper.specialist;
-import com.soupulsar.modulith.auth.domain.model.vo.Presentation;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.PresentationEmbeddable;
+import com.soupulsar.domain.model.vo.Presentation;
+import com.soupulsar.infrastructure.persistence.entity.specialist.PresentationEmbeddable;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/SpecialistProfileMapper.java b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/specialist/SpecialistProfileMapper.java
similarity index 86%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/SpecialistProfileMapper.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/mapper/specialist/SpecialistProfileMapper.java
index fcb1ce2..43ba4ef 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/mapper/SpecialistProfileMapper.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/mapper/specialist/SpecialistProfileMapper.java
@@ -1,7 +1,7 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.mapper;
+package com.soupulsar.infrastructure.persistence.mapper.specialist;
-import com.soupulsar.modulith.auth.domain.model.SpecialistProfile;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.SpecialistProfileEntity;
+import com.soupulsar.domain.model.specialist.SpecialistProfile;
+import com.soupulsar.infrastructure.persistence.entity.specialist.SpecialistProfileEntity;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/AvailabilityJpaRepository.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/AvailabilityJpaRepository.java
similarity index 71%
rename from src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/AvailabilityJpaRepository.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/AvailabilityJpaRepository.java
index 2dda542..15a10df 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/AvailabilityJpaRepository.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/AvailabilityJpaRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.scheduling.infratructure.persistence;
+package com.soupulsar.infrastructure.persistence.repository;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.entity.AvailabilityEntity;
+import com.soupulsar.infrastructure.persistence.entity.availability.AvailabilityEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import java.time.DayOfWeek;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/ClientProfileJpaRepository.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/ClientProfileJpaRepository.java
similarity index 52%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/ClientProfileJpaRepository.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/ClientProfileJpaRepository.java
index b2062fe..268850d 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/ClientProfileJpaRepository.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/ClientProfileJpaRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.repository;
+package com.soupulsar.infrastructure.persistence.repository;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.ClientProfileEntity;
+import com.soupulsar.infrastructure.persistence.entity.client.ClientProfileEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/SessionJpaRepository.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/SessionJpaRepository.java
similarity index 79%
rename from src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/SessionJpaRepository.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/SessionJpaRepository.java
index eb1b68d..6257edd 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/SessionJpaRepository.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/SessionJpaRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.scheduling.infratructure.persistence;
+package com.soupulsar.infrastructure.persistence.repository;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.entity.SessionEntity;
+import com.soupulsar.infrastructure.persistence.entity.session.SessionEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/SpecialistProfileJpaRepository.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/SpecialistProfileJpaRepository.java
similarity index 53%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/SpecialistProfileJpaRepository.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/SpecialistProfileJpaRepository.java
index 5c5bc20..953c39e 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/SpecialistProfileJpaRepository.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/SpecialistProfileJpaRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.repository;
+package com.soupulsar.infrastructure.persistence.repository;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.SpecialistProfileEntity;
+import com.soupulsar.infrastructure.persistence.entity.specialist.SpecialistProfileEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/UserJpaRepository.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/UserJpaRepository.java
similarity index 67%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/UserJpaRepository.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/UserJpaRepository.java
index 8644063..2b19349 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/UserJpaRepository.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/UserJpaRepository.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.repository;
+package com.soupulsar.infrastructure.persistence.repository;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.UserEntity;
+import com.soupulsar.infrastructure.persistence.entity.user.UserEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/repository/AvailabilityRepositoryImpl.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/AvailabilityRepositoryImpl.java
similarity index 69%
rename from src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/repository/AvailabilityRepositoryImpl.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/AvailabilityRepositoryImpl.java
index 4308928..feb17d9 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/repository/AvailabilityRepositoryImpl.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/AvailabilityRepositoryImpl.java
@@ -1,10 +1,10 @@
-package com.soupulsar.modulith.scheduling.infratructure.persistence.repository;
+package com.soupulsar.infrastructure.persistence.repository.impl;
-import com.soupulsar.modulith.scheduling.domain.model.Availability;
-import com.soupulsar.modulith.scheduling.domain.repository.AvailabilityRepository;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.AvailabilityJpaRepository;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.entity.AvailabilityEntity;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.mapper.AvailabilityMapper;
+import com.soupulsar.domain.model.availability.Availability;
+import com.soupulsar.domain.repository.AvailabilityRepository;
+import com.soupulsar.infrastructure.persistence.repository.AvailabilityJpaRepository;
+import com.soupulsar.infrastructure.persistence.entity.availability.AvailabilityEntity;
+import com.soupulsar.infrastructure.persistence.mapper.AvailabilityMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/ClientProfileRepositoryImpl.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/ClientProfileRepositoryImpl.java
similarity index 62%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/ClientProfileRepositoryImpl.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/ClientProfileRepositoryImpl.java
index 76dd2f4..ad62982 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/ClientProfileRepositoryImpl.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/ClientProfileRepositoryImpl.java
@@ -1,9 +1,10 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.repository;
+package com.soupulsar.infrastructure.persistence.repository.impl;
-import com.soupulsar.modulith.auth.domain.model.ClientProfile;
-import com.soupulsar.modulith.auth.domain.repository.ClientProfileRepository;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.ClientProfileEntity;
-import com.soupulsar.modulith.auth.infrastructure.persistence.mapper.ClientProfileMapper;
+import com.soupulsar.domain.model.client.ClientProfile;
+import com.soupulsar.domain.repository.ClientProfileRepository;
+import com.soupulsar.infrastructure.persistence.entity.client.ClientProfileEntity;
+import com.soupulsar.infrastructure.persistence.mapper.client.ClientProfileMapper;
+import com.soupulsar.infrastructure.persistence.repository.ClientProfileJpaRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/repository/SessionRepositoryImpl.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/SessionRepositoryImpl.java
similarity index 66%
rename from src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/repository/SessionRepositoryImpl.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/SessionRepositoryImpl.java
index 16547d2..49edf53 100644
--- a/src/main/java/com/soupulsar/modulith/scheduling/infratructure/persistence/repository/SessionRepositoryImpl.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/SessionRepositoryImpl.java
@@ -1,10 +1,10 @@
-package com.soupulsar.modulith.scheduling.infratructure.persistence.repository;
+package com.soupulsar.infrastructure.persistence.repository.impl;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.repository.SessionRepository;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.SessionJpaRepository;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.entity.SessionEntity;
-import com.soupulsar.modulith.scheduling.infratructure.persistence.mapper.SessionMapper;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.repository.SessionRepository;
+import com.soupulsar.infrastructure.persistence.repository.SessionJpaRepository;
+import com.soupulsar.infrastructure.persistence.entity.session.SessionEntity;
+import com.soupulsar.infrastructure.persistence.mapper.SessionMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
@@ -13,8 +13,6 @@
import java.util.Optional;
import java.util.UUID;
-import static java.util.stream.Collectors.toList;
-
@RequiredArgsConstructor
@Repository
public class SessionRepositoryImpl implements SessionRepository {
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/SpecialistProfileRepositoryImpl.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/SpecialistProfileRepositoryImpl.java
similarity index 60%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/SpecialistProfileRepositoryImpl.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/SpecialistProfileRepositoryImpl.java
index 9209fee..ffc8fc0 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/SpecialistProfileRepositoryImpl.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/SpecialistProfileRepositoryImpl.java
@@ -1,9 +1,10 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.repository;
+package com.soupulsar.infrastructure.persistence.repository.impl;
-import com.soupulsar.modulith.auth.domain.model.SpecialistProfile;
-import com.soupulsar.modulith.auth.domain.repository.SpecialistProfileRepository;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.SpecialistProfileEntity;
-import com.soupulsar.modulith.auth.infrastructure.persistence.mapper.SpecialistProfileMapper;
+import com.soupulsar.domain.model.specialist.SpecialistProfile;
+import com.soupulsar.domain.repository.SpecialistProfileRepository;
+import com.soupulsar.infrastructure.persistence.entity.specialist.SpecialistProfileEntity;
+import com.soupulsar.infrastructure.persistence.mapper.specialist.SpecialistProfileMapper;
+import com.soupulsar.infrastructure.persistence.repository.SpecialistProfileJpaRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/UserRepositoryImpl.java b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/UserRepositoryImpl.java
similarity index 75%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/UserRepositoryImpl.java
rename to src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/UserRepositoryImpl.java
index 4514784..501287a 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/persistence/repository/UserRepositoryImpl.java
+++ b/src/main/java/com/soupulsar/infrastructure/persistence/repository/impl/UserRepositoryImpl.java
@@ -1,9 +1,10 @@
-package com.soupulsar.modulith.auth.infrastructure.persistence.repository;
+package com.soupulsar.infrastructure.persistence.repository.impl;
-import com.soupulsar.modulith.auth.domain.model.User;
-import com.soupulsar.modulith.auth.domain.repository.UserRepository;
-import com.soupulsar.modulith.auth.infrastructure.persistence.entity.UserEntity;
-import com.soupulsar.modulith.auth.infrastructure.persistence.mapper.UserMapper;
+import com.soupulsar.domain.model.user.User;
+import com.soupulsar.domain.repository.UserRepository;
+import com.soupulsar.infrastructure.persistence.entity.user.UserEntity;
+import com.soupulsar.infrastructure.persistence.mapper.UserMapper;
+import com.soupulsar.infrastructure.persistence.repository.UserJpaRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/security/BCryptPasswordHasher.java b/src/main/java/com/soupulsar/infrastructure/security/BCryptPasswordHasher.java
similarity index 80%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/security/BCryptPasswordHasher.java
rename to src/main/java/com/soupulsar/infrastructure/security/BCryptPasswordHasher.java
index 3a366a0..1401493 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/security/BCryptPasswordHasher.java
+++ b/src/main/java/com/soupulsar/infrastructure/security/BCryptPasswordHasher.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.infrastructure.security;
+package com.soupulsar.infrastructure.security;
-import com.soupulsar.modulith.auth.application.security.PasswordHasher;
+import com.soupulsar.application.security.PasswordHasher;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/security/CustomUserDetailsService.java b/src/main/java/com/soupulsar/infrastructure/security/CustomUserDetailsService.java
similarity index 88%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/security/CustomUserDetailsService.java
rename to src/main/java/com/soupulsar/infrastructure/security/CustomUserDetailsService.java
index 237b721..be06656 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/security/CustomUserDetailsService.java
+++ b/src/main/java/com/soupulsar/infrastructure/security/CustomUserDetailsService.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.infrastructure.security;
+package com.soupulsar.infrastructure.security;
-import com.soupulsar.modulith.auth.domain.repository.UserRepository;
+import com.soupulsar.domain.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/security/JwtAuthenticationFilter.java b/src/main/java/com/soupulsar/infrastructure/security/JwtAuthenticationFilter.java
similarity index 94%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/security/JwtAuthenticationFilter.java
rename to src/main/java/com/soupulsar/infrastructure/security/JwtAuthenticationFilter.java
index db61031..6b60cbb 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/security/JwtAuthenticationFilter.java
+++ b/src/main/java/com/soupulsar/infrastructure/security/JwtAuthenticationFilter.java
@@ -1,6 +1,6 @@
-package com.soupulsar.modulith.auth.infrastructure.security;
+package com.soupulsar.infrastructure.security;
-import com.soupulsar.modulith.auth.application.security.JwtService;
+import com.soupulsar.application.security.JwtService;
import io.jsonwebtoken.Claims;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
diff --git a/src/main/java/com/soupulsar/modulith/auth/infrastructure/security/SecurityConfig.java b/src/main/java/com/soupulsar/infrastructure/security/SecurityConfig.java
similarity index 97%
rename from src/main/java/com/soupulsar/modulith/auth/infrastructure/security/SecurityConfig.java
rename to src/main/java/com/soupulsar/infrastructure/security/SecurityConfig.java
index 6494333..c577686 100644
--- a/src/main/java/com/soupulsar/modulith/auth/infrastructure/security/SecurityConfig.java
+++ b/src/main/java/com/soupulsar/infrastructure/security/SecurityConfig.java
@@ -1,4 +1,4 @@
-package com.soupulsar.modulith.auth.infrastructure.security;
+package com.soupulsar.infrastructure.security;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
diff --git a/src/main/java/com/soupulsar/modulith/auth/application/config/AuthUseCaseConfig.java b/src/main/java/com/soupulsar/modulith/auth/application/config/AuthUseCaseConfig.java
deleted file mode 100644
index fe3a955..0000000
--- a/src/main/java/com/soupulsar/modulith/auth/application/config/AuthUseCaseConfig.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.soupulsar.modulith.auth.application.config;
-
-import com.soupulsar.modulith.auth.application.security.JwtService;
-import com.soupulsar.modulith.auth.application.security.PasswordHasher;
-import com.soupulsar.modulith.auth.application.usecase.AuthenticateUserUseCase;
-import com.soupulsar.modulith.auth.application.usecase.RegistrationUseCase;
-import com.soupulsar.modulith.auth.domain.repository.ClientProfileRepository;
-import com.soupulsar.modulith.auth.domain.repository.SpecialistProfileRepository;
-import com.soupulsar.modulith.auth.domain.repository.UserRepository;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class AuthUseCaseConfig {
-
- @Bean
- public AuthenticateUserUseCase authenticateUserUseCase(UserRepository userRepository, PasswordHasher passwordHasher, JwtService jwtService) {
- return new AuthenticateUserUseCase(userRepository, passwordHasher, jwtService);
- }
-
- @Bean
- public RegistrationUseCase registrationUseCase(UserRepository userRepository, ClientProfileRepository clientProfileRepository,
- SpecialistProfileRepository specialistProfileRepository, PasswordHasher passwordHasher) {
- return new RegistrationUseCase(userRepository, clientProfileRepository, specialistProfileRepository,passwordHasher);
- }
-
-
-}
diff --git a/src/main/java/com/soupulsar/modulith/auth/domain/model/enums/UserStatus.java b/src/main/java/com/soupulsar/modulith/auth/domain/model/enums/UserStatus.java
deleted file mode 100644
index a0ce032..0000000
--- a/src/main/java/com/soupulsar/modulith/auth/domain/model/enums/UserStatus.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.soupulsar.modulith.auth.domain.model.enums;
-
-public enum UserStatus {
- ACTIVE,
- INACTIVE,
-}
\ No newline at end of file
diff --git a/src/main/java/com/soupulsar/modulith/scheduling/application/config/UseCaseConfig.java b/src/main/java/com/soupulsar/modulith/scheduling/application/config/UseCaseConfig.java
deleted file mode 100644
index b3abb1b..0000000
--- a/src/main/java/com/soupulsar/modulith/scheduling/application/config/UseCaseConfig.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.soupulsar.modulith.scheduling.application.config;
-
-import com.soupulsar.modulith.scheduling.application.usecase.*;
-import com.soupulsar.modulith.scheduling.domain.repository.AvailabilityRepository;
-import com.soupulsar.modulith.scheduling.domain.repository.SessionRepository;
-import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class UseCaseConfig {
-
- @Bean
- public CreateAvailabilityUseCase createAvailabilityUseCase(AvailabilityRepository repository) {
- return new CreateAvailabilityUseCase(repository);
- }
-
- @Bean
- public ScheduleSessionUseCase scheduleSessionUseCase(SessionRepository sessionRepository, AvailabilityRepository availabilityRepository, ApplicationEventPublisher publisher) {
- return new ScheduleSessionUseCase(sessionRepository, availabilityRepository, publisher);
- }
-
- @Bean
- public ConfirmSessionUseCase confirmSessionUseCase(SessionRepository sessionRepository) {
- return new ConfirmSessionUseCase(sessionRepository);
- }
-
- @Bean
- public CancelSessionUseCase cancelSessionUseCase(SessionRepository sessionRepository) {
- return new CancelSessionUseCase(sessionRepository);
- }
-
- @Bean
- public CompleteSessionUseCase completeSessionUseCase(SessionRepository sessionRepository) {
- return new CompleteSessionUseCase(sessionRepository);
- }
-}
\ No newline at end of file
diff --git a/src/test/java/com/soupulsar/modulith/auth/application/usecase/AuthenticateUserUseCaseTest.java b/src/test/java/com/soupulsar/modulith/auth/application/usecase/AuthenticateUserUseCaseTest.java
index 23e012c..3f29d02 100644
--- a/src/test/java/com/soupulsar/modulith/auth/application/usecase/AuthenticateUserUseCaseTest.java
+++ b/src/test/java/com/soupulsar/modulith/auth/application/usecase/AuthenticateUserUseCaseTest.java
@@ -1,14 +1,15 @@
package com.soupulsar.modulith.auth.application.usecase;
-import com.soupulsar.modulith.auth.application.dto.AuthUserRequest;
-import com.soupulsar.modulith.auth.application.dto.AuthUserResponse;
-import com.soupulsar.modulith.auth.application.security.JwtService;
-import com.soupulsar.modulith.auth.application.security.PasswordHasher;
-import com.soupulsar.modulith.auth.domain.model.User;
-import com.soupulsar.modulith.auth.domain.model.enums.UserRole;
-import com.soupulsar.modulith.auth.domain.model.enums.UserStatus;
-import com.soupulsar.modulith.auth.domain.model.vo.Address;
-import com.soupulsar.modulith.auth.domain.repository.UserRepository;
+import com.soupulsar.application.dto.request.AuthUserRequest;
+import com.soupulsar.application.dto.response.AuthUserResponse;
+import com.soupulsar.application.security.JwtService;
+import com.soupulsar.application.security.PasswordHasher;
+import com.soupulsar.application.usecase.AuthenticateUserUseCase;
+import com.soupulsar.domain.model.user.User;
+import com.soupulsar.domain.model.enums.UserRole;
+import com.soupulsar.domain.model.enums.UserStatus;
+import com.soupulsar.domain.model.vo.Address;
+import com.soupulsar.domain.repository.UserRepository;
import io.jsonwebtoken.Claims;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/CancelSessionUseCaseTest.java b/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/CancelSessionUseCaseTest.java
index 9786bde..d7bdf6d 100644
--- a/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/CancelSessionUseCaseTest.java
+++ b/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/CancelSessionUseCaseTest.java
@@ -1,8 +1,9 @@
package com.soupulsar.modulith.scheduling.application.usecase;
-import com.soupulsar.modulith.scheduling.application.dto.SessionResponse;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.repository.SessionRepository;
+import com.soupulsar.application.dto.response.SessionResponse;
+import com.soupulsar.application.usecase.session.CancelSessionUseCase;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.repository.SessionRepository;
import org.junit.jupiter.api.Test;
import java.util.Optional;
diff --git a/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/CreateAvailabilityUseCaseTest.java b/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/CreateAvailabilityUseCaseTest.java
index 9040c00..ddfb790 100644
--- a/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/CreateAvailabilityUseCaseTest.java
+++ b/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/CreateAvailabilityUseCaseTest.java
@@ -1,9 +1,10 @@
package com.soupulsar.modulith.scheduling.application.usecase;
-import com.soupulsar.modulith.scheduling.application.dto.CreateAvailabilityRequest;
-import com.soupulsar.modulith.scheduling.application.dto.CreateAvailabilityResponse;
-import com.soupulsar.modulith.scheduling.domain.model.Availability;
-import com.soupulsar.modulith.scheduling.domain.repository.AvailabilityRepository;
+import com.soupulsar.application.dto.request.CreateAvailabilityRequest;
+import com.soupulsar.application.dto.response.CreateAvailabilityResponse;
+import com.soupulsar.application.usecase.availability.CreateAvailabilityUseCase;
+import com.soupulsar.domain.model.availability.Availability;
+import com.soupulsar.domain.repository.AvailabilityRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
diff --git a/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/ScheduleSessionUseCaseTest.java b/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/ScheduleSessionUseCaseTest.java
index 4c56115..c85ce47 100644
--- a/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/ScheduleSessionUseCaseTest.java
+++ b/src/test/java/com/soupulsar/modulith/scheduling/application/usecase/ScheduleSessionUseCaseTest.java
@@ -1,12 +1,13 @@
package com.soupulsar.modulith.scheduling.application.usecase;
-import com.soupulsar.modulith.scheduling.application.dto.ScheduleSessionRequest;
-import com.soupulsar.modulith.scheduling.application.dto.ScheduleSessionResponse;
-import com.soupulsar.modulith.scheduling.domain.events.SessionScheduledEvent;
-import com.soupulsar.modulith.scheduling.domain.model.Availability;
-import com.soupulsar.modulith.scheduling.domain.model.Session;
-import com.soupulsar.modulith.scheduling.domain.repository.AvailabilityRepository;
-import com.soupulsar.modulith.scheduling.domain.repository.SessionRepository;
+import com.soupulsar.application.dto.request.ScheduleSessionRequest;
+import com.soupulsar.application.dto.response.ScheduleSessionResponse;
+import com.soupulsar.application.usecase.session.ScheduleSessionUseCase;
+import com.soupulsar.domain.event.SessionScheduledEvent;
+import com.soupulsar.domain.model.availability.Availability;
+import com.soupulsar.domain.model.session.Session;
+import com.soupulsar.domain.repository.AvailabilityRepository;
+import com.soupulsar.domain.repository.SessionRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationEventPublisher;