SGEProduto · Domínio · Desenvolvimento
Repositório

migration-reference · implemented

Migration 21 — internship_cancellation_requests

Pedidos rastreáveis de cancelamento de estágio formalizado feitos pelo discente.

Contrato inicial

CampoRegra
idbigint, chave primária.
internship_idFK obrigatória para o estágio que se pretende cancelar.

| reason | texto obrigatório informado pelo discente. | | status | InternshipCancellationRequestStatus. | | reviewed_at | data da decisão, nula até análise; a autoria fica no Activity Log. | | decision_reason | obrigatório na recusa; opcional na aprovação. | | effective_date | nullable; data efetiva do cancelamento, quando aprovada. | | timestamps | auditoria temporal. |

O discente pode abrir o pedido quando o estágio estiver em formalização, aguardando assinatura, com pendência, liberado, em andamento ou pausado. Não pode haver dois pedidos não finais para o mesmo estágio. A solicitação não muda o estágio automaticamente: o vínculo InternshipOffice analisa e decide em transação. Abertura, retirada e decisão são auditadas no activity_log, que registra o autor sem duplicar FKs na tabela. Os efeitos serão auditados no fluxo.

Efeitos da aprovação

  • grava effective_date e muda o estágio para Cancelled;
  • cancela documentos Generated ou AwaitingSignature, com motivo e autoria;
  • preserva documentos já Signed como histórico; não os reclassifica como cancelados;
  • gera um termo de rescisão versionado quando existir TCE assinado ou quando o Setor indicar necessidade; a data e justificativa vêm deste pedido;
  • encerra avaliações Draft, Submitted ou Returned como Cancelled; avaliações aprovadas e notas já lançadas permanecem históricas, mas não produzem conclusão;
  • preserva jornadas, pausas, snapshots, notas e logs; não calcula nota final faltante nem marca o estágio como concluído;
  • notifica discente, supervisor, orientador e Setor conforme o contexto.

Estágio Completed não é cancelado por este fluxo. Correção administrativa posterior exige ação própria e justificativa institucional.

Checklist

  • Separar desistência antes da formalização de cancelamento de estágio já criado.
  • Permitir pedido pelo discente antes do início e durante o andamento.
  • Definir o Setor de Estágio como autoridade e fechar os estados do pedido.
  • Definir efeitos sobre documentos gerados, assinados ou aguardando assinatura.
  • Definir preservação de carga horária, avaliações e notas sem conclusão.
  • Criar migration, Model, factory e relação com estágio.
  • Validar no Model os estados, motivos, datas e ausência de outro pedido em análise.
  • Criar Policy, efeitos transacionais, notificações e testes do fluxo.

Dependências