SGEProduto · Domínio · Desenvolvimento
Repositório

enum-reference · implemented

Enum — EvaluationStatus

Ciclo persistido das respostas de avaliação enviadas pelo supervisor.

Contrato implementado

CaseValor persistidoUso
DraftdraftResposta editável, salva pelo supervisor e ainda não enviada.
SubmittedsubmittedResposta enviada, congelada e aguardando análise.
ReturnedreturnedEnvio devolvido com motivo; o mesmo formulário volta a ser editável.
ApprovedapprovedEnvio aceito pelo Setor de Estágio; exige carga horária cumprida.
CancelledcancelledRegistro preservado, encerrado sem aprovação e sem exclusão física.

Transições

Diagram Design · Mermaid · arraste para mover · Ctrl/⌘ + scroll para zoom

100%Abrir inteiro ↗

Renderizando diagrama declarativo…

Legenda
  • Estado
  • Transição
  • Terminal
Leitura semântica

A avaliação começa em Draft, é enviada como Submitted, pode voltar a Returned para correção e, depois da análise do Setor, termina como Approved ou Cancelled.

Fonte declarativa: diagrams/sources/enum-evaluation-status.mmd
  • Somente o supervisor vinculado ao estágio pode preencher e salvar o Draft ou o Returned.
  • Draft aceita preenchimento parcial. Nos demais estados, todos os campos obrigatórios para o ramo condicional escolhido devem estar válidos; ramos não selecionados e pareceres opcionais permanecem nulos.
  • Depois da transição para Submitted, a resposta fica bloqueada. Returned reabre a mesma linha, permitindo ao supervisor editar todos os campos e reenviá-la.
  • A análise pertence ao vínculo AffiliationType::InternshipOffice. O vínculo Coordinator continua representando o coordenador de curso e não concede essa ação automaticamente. A avaliação não guarda FK do revisor; o Activity Log já registra o vínculo ativo como causer. A autorização e a interface do fluxo de revisão ainda estão pendentes.
  • O Setor de Estágio aprova ou devolve, mas não altera as respostas fornecidas pelo supervisor. O supervisor pode cancelar um envio Submitted ou Returned; o cancelamento exige motivo.
  • Não há exclusão física. Ações, valores anteriores/novos e transições são preservados no activity_log, que não é exibido ao supervisor.

Avaliação vigente

O envio mais recente não substitui imediatamente uma avaliação já vigente. A avaliação considerada para a nota é a resposta Approved mais recente, ordenada por submitted_at e id. O Setor só pode aprovar quando a confirmação de carga horária estiver atendida.

  • Um novo Submitted permanece apenas como candidato enquanto aguarda análise.
  • Um Returned nunca é usado no cálculo.
  • A avaliação vigente deverá ser referenciada por internships.current_supervisor_evaluation_id ou mecanismo equivalente com garantia de unicidade.
  • A aprovação da avaliação, isoladamente, não conclui o estágio; a conclusão ocorre quando a carga horária integral é confirmada. Documentos e notas permanecem como registros próprios do processo.

Liberação e notificação

A liberação para preenchimento pertence ao estágio, não ao enum da resposta. O sistema deverá registrar evaluation_released_at, notificar o supervisor vinculado e só então permitir a criação ou edição do rascunho.

Checklist de decisão e implementação

  • Confirmar que a avaliação terá rascunho, envio e devolução no mesmo registro.
  • Confirmar que o supervisor responde e o Setor de Estágio aprova ou devolve.
  • Confirmar que a avaliação vigente será a aprovada mais recente, com aprovação condicionada à carga horária cumprida.
  • Definir pesos e valores dos conceitos no snapshot do tipo de estágio.
  • Mapear critérios, escala e regras condicionais do formulário fixo de avaliação.
  • Criar o enum e seus testes unitários.
  • Criar migration e campos de liberação/avaliação vigente.
  • Adicionar cast, transições no Model e testes de histórico; autorização e seleção transacional da vigente continuam pendentes.
  • Atualizar migration de avaliação e fase de avaliação.

Relacionamentos