Na real, tem várias maneiras de lidar com isso, saca? O Negócio é que vai depender das regras do seu projeto.
Uma ideia é jogar uma opção no método PUT pra ressuscitar o registro. Tipo, cê coloca um parâmetro no corpo da requisição chamado "ativo". Se for true, o campo "ativo" vai pro true de novo. Se não, ele fica de boa no false.
@PutMapping("/{id}")
public void atualizar(@PathVariable Long id, @RequestBody DadosAtualizacaoMedico dadosAtualizacao) {
var medico = repository.getReferenceById(id);
medico.setNome(dadosAtualizacao.getNome());
// atualiza os outros campos que precisar
if (dadosAtualizacao.isAtivo()) {
medico.setAtivo(true);
}
repository.save(medico);
}
Assim, se tu mandar um PUT com o "ativo" no corpo como true, o registro volta à vida. Senão, fica mortinho. Só ajusta o código pros nomes certos dos teus campos e da tua entidade Medico, beleza?