Vamos supor que a classe "Curso" tenha uma caracteristica Booleana de "Ativo" ou "Inativo".
Vamos supor que esta caracteristica seja "Calculada", através de consultas em outras tabelas, que podem inclusive ser Computacionalmente pesadas.
Vamos supor que ao cadastrar um novo Tópico, exista uma regra que define que não se pode cadastrar tópicos que contenham cursos inativos.
E por fim, vamos supor que eu tenho vários Endpoints que cadastram tópicos, e eu não quero correr o risco de fazer a validação acima em alguns deles.
Sendo assim:
Onde eu coloco o código fonte de verificação? No próprio construtor do tópico?