Pular para o conteúdo principal

Remoção de Entidades

A API permite remover entidades através de endpoints DELETE. Esta página descreve como funciona o soft delete, o que cada remoção afeta em cascata e quando suspender é melhor do que remover.

Toda remoção é soft delete: o registro é marcado como removido, mas permanece no banco de dados para fins históricos e de auditoria. Os endpoints DELETE exigem escopo write ou full.

Remoções em cascata afetam entidades filhas

Remover uma entidade pai remove também as entidades vinculadas a ela. Avalie o impacto na tabela abaixo antes de executar.

Comportamento por Entidade

Cada endpoint remove a entidade informada e, dependendo do tipo, propaga a remoção para entidades filhas. Entidades globais da instituição (Áreas e Disciplinas Base) nunca são afetadas por remoções de outras entidades.

EndpointRemove em cascataObservações
DELETE /units/{code}Cursos vinculados e seus alunosÁreas e disciplinas base não são afetadas (globais)
DELETE /areas/{code}Cursos vinculados e seus alunosUnidades e disciplinas base não são afetadas
DELETE /courses/{code}Alunos vinculadosDisciplinas base não são removidas. Turmas com o curso em course_codes permanecem, com o curso desvinculado do pivot
DELETE /subjects/{code}Todas as turmas vinculadasA disciplina base é global; remover propaga para as turmas que a instanciam
DELETE /enrollments/{code}Vínculos de professores, cursos e alunos do pivotA turma é removida; as entidades vinculadas permanecem, apenas o vínculo é desfeito
DELETE /professors/{code}NadaTurmas que o professor lecionava são preservadas
DELETE /students/{code}NadaMatrículas históricas são preservadas
DELETE /directors/{code}NadaSoft delete do diretor
DELETE /coordinators/{code}NadaSoft delete do coordenador
DELETE /area-managers/{code}NadaSoft delete do gestor de área
DELETE /pedagogical-advisors/{code}NadaSoft delete do assessor pedagógico
Curso removido deixa turmas sem vínculo

Ao remover um curso, as turmas que o referenciavam em course_codes permanecem ativas, mas com o pivot do curso desvinculado. Se a turma tinha apenas esse curso, ela passa a não ter cursos, e a próxima sincronização nessa turma exigirá course_codes novamente.

Exemplo de Requisição

DELETE/integration/v1/units/{code}
curl -X DELETE https://{{instituicao}}.proextend.com.br/api/integration/v1/units/CAMPUS_CENTRO \
-H "Authorization: Bearer pex_..."

Resposta

Todos os endpoints de remoção retornam o mesmo formato:

{
"success": true,
"message": "Unidade removida com sucesso."
}

Códigos de Erro

CódigoCausa
401API Key ausente ou inválida
403API Key desativada ou escopo insuficiente (requer write ou full)
404Entidade não encontrada com o code informado

O corpo de erro segue o shape ApiError padrão. Detalhes em Tratamento de Erros.

Alternativa: Suspensão

Para professores, coordenadores, gestores de área, diretores, assessores pedagógicos e alunos, prefira suspender o acesso com active: false na sincronização, em vez de remover. A suspensão preserva o vínculo histórico e pode ser revertida com active: true.

{
"professors": [
{
"code": "PROF001",
"name": "Dr. João Silva",
"email": "joao.silva@faculdade.edu.br",
"active": false
}
]
}

Consulte Fluxo de Sincronização para detalhes sobre o campo active.