Olá, tenho uma dúvida está até pouco fora do contexto do projeto do curso, mas creio que se puderem responder posso fixar ainda mais o conteúdo.
Imagine que no use case de matricular aluno (/src/Academico/Aplicacao/Aluno/MatricularAluno) houvesse uma regra do tipo:
- Verificar se aluno possui os pré-requisitos do curso para se matricular ou se ele já está matriculado no curso.
Isso ficaria na camada de aplicação?
class MatricularAluno
{
private RepositorioDeAluno $repositorioDeAluno;
private PublicadorDeEvento $publicador;
public function __construct(RepositorioDeAluno $repositorioDeAluno, PublicadorDeEvento $publicador)
{
$this->repositorioDeAluno = $repositorioDeAluno;
$this->publicador = $publicador;
}
public function executa(MatricularAlunoDto $dados): void
{
$aluno = Aluno::comCpfNomeEEmail($dados->cpfAluno, $dados->nomeAluno, $dados->emailAluno);
/*******************************************************************
# Seria aqui o local recomendado para fazer uma validação ?
# Eu "precisava" validar se aluno atende aos pré-requisitos
# para matricular no curso.
*******************************************************************/
$this->repositorioDeAluno->adicionar($aluno);
$evento = new AlunoMatriculado($aluno->cpf());
$this->publicador->publicar($evento);
}
}
Se puderem me ajudar eu agradeço, forte abraço.