UC-SISGHA-GH-002 — Editar grade manualmente com proteção de células
Informações gerais
| Campo | Valor |
|---|---|
| Ator primário | DAPE |
| Nível | User Goal |
| Escopo | SISGHA |
| Pré-condições | Grade horária gerada; DAPE autenticado |
| Garantia de sucesso | Aula movida para novo slot sem conflitos; alteração persistida |
| Garantia mínima | Nenhuma alteração persistida; grid retorna ao estado anterior |
| Trigger | DAPE arrasta célula na grade ou clica para editar |
Cenário principal
- DAPE visualiza a grade de horário de uma turma ou professor.
- DAPE identifica uma aula que precisa ser movida.
- DAPE arrasta a célula para um novo slot (drag & drop).
- Sistema valida instantaneamente: sem choque de professor, sem choque de turma, sem sobreposição temporal.
- Validação passa — célula é depositada no novo slot.
- Sistema persiste a alteração.
- Grade atualiza visualmente.
Extensões
2a. Célula está travada (pinning):
- Cursor muda para "not-allowed".
- Drag é bloqueado. DAPE precisa destravar primeiro.
4a. Conflito de professor:
- Sistema rejeita o drop.
- Exibe tooltip: "Prof. [nome] já tem aula com [turma] neste horário."
- Célula retorna à posição original.
4b. Conflito de turma:
- Sistema rejeita o drop.
- Exibe tooltip: "[Turma] já tem aula neste horário."
- Célula retorna à posição original.
4c. Sobreposição temporal parcial:
- Sistema detecta overlap mesmo que parcial.
- Rejeita o drop com motivo detalhado.
6a. DAPE deseja travar a célula recém-movida:
- DAPE clica no ícone de cadeado da célula.
- Sistema marca como travada — protegida contra regeneração futura.
7a. DAPE desfaz a ação (Ctrl+Z):
- Sistema reverte última movimentação.
- Grade retorna ao estado anterior.
Regras de negócio aplicáveis
- BR-SISGHA-VH-001: Edição de horário afeta apenas a semana em edição
- BR-SISGHA-006: Pinning protege células de regeneração
- BR-SISGHA-008: Motivo do conflito exibido ao DAPE (transparência)
Fonte: Figma SISGHA V2.0, node 9425:10699 (Edição de horário — Grid selecionado).