Dentro do pacote businessRule em cada pacote, tem regras de negocio relacionadas com alguma funcionalidade, por exemplo, commitAppointment, tem regras de negocio relacionadas a marcar / alterar uma consulta no sistema: Segue o exemplo abaixo: Para atualizar uma consulta eu tenho regras de negocio e para cadastrar também, onde a LÓGICA é a mesma em ambos, mas o de update recebe um AppointmentUpdateDTO e o register AppointmentRegisterDTO pois os dto's para ambas funcionalidades são diferentes. mas a regra de negocio é a mesma por isso fiz a separação dessa maneira, para não ter que criar a lógica 2 vezes, tanto para update, quando para registrar. segue um exemplo:
E a proxima print é onde a lógica se encontra (sendo reutilizada nas 2 prints acima)
--------------------------//-------------------------- 1-) Dúvida: Gostaria de saber se essa abordagem está correta. 2-) Dúvida: Como eu poderia montar essa estrutura em testes? lembrando(testes de unidade). Eu criaria um pacote businessRule e criaria da mesma forma que está os testes dessa forma principal aí? ou por exemplo, eu poderia fazer da seguinte forma: Eu crio o pacote appointmentService e crio classes com testes relacionadas as regras de negocio para cadadastrar/atualizar um appointment tudo dentro desse pacote service ou deixo separado um pacote só para essas regras de negocio em si? Pq lembrando, eu também chamo essas validações no service através do metodo validations.forEach(v-> v.validation()...); Então essas 2 formas teriam sentido para mim mas n sei qual a melhor. 1- Deixar essas validações em um pacote só de regras de negocio -> pacote businessRule (Exclusivo) 2- Deixas essas validações dentro do pacote service onde teram outros testes de services juntos com esses. ----------------------//------------------------------ Outra dúvida: Dentro de businessRule/registerDentist/PasswordFormat -> Tenho uma validação do formato da senha para registrar um dentista. (método statico) porém para trocar a senha, eu preciso dessa validação também, no caso esse método statico que é responsavel por verificar o formato da senha, então eu utilizo ele em dois lugares, essa (REGRA DE NEGOCIO), onde seria melhor eu deixa-lo então? na pasta raiz businessRule? pois estou usando em mais de 1 funcionalidade.