# Cronograma técnico para paridade 90%+ (base i‑Educar)

Data: 2026-01-29
Maturidade atual (referência informada): 61,6%
Objetivo: atingir 90%+ de paridade funcional.

Este cronograma prioriza as lacunas críticas identificadas e define as mudanças necessárias no banco de dados para cada item.

## Visão geral por etapas

### Fase 1 (Semanas 1–2) — Base de avaliação e infraestrutura
1) **Módulo de Regras de Avaliação (fórmulas customizáveis)**
2) **Refinamento de Infra (Prédios e Salas Físicas)**

### Fase 2 (Semanas 3–4) — Notas descritivas e consolidação
3) **Notas Descritivas (pareceres pedagógicos)**
4) **Consolidação de Histórico (Fechamento de Ano)**

### Fase 3 (Semanas 5–6) — Documentos oficiais e validações
5) **Gerador de Documentos Oficiais**
6) **Validações cruzadas e ajustes finais de paridade**

---

## 1) Módulo de Regras de Avaliação (fórmulas customizáveis)

### Objetivo
Permitir configurar fórmulas de cálculo por etapa/serie/ano letivo com pesos, médias aritméticas e regras variáveis por disciplina.

### Mudanças no banco
Criar tabelas para modelar regras e componentes:
- `assessment_rules`
  - `id`, `name`, `description`, `method` (ex.: `aritmetica`, `ponderada`, `personalizada`)
  - `rounding` (ex.: `0.5`, `1.0`), `minimum_average`, `created_at`, `updated_at`
- `assessment_rule_components`
  - `id`, `assessment_rule_id` (FK)
  - `name` (ex.: "Prova 1", "Trabalho")
  - `weight` (decimal), `max_score` (decimal), `order`
- `assessment_rule_assignments`
  - `id`, `assessment_rule_id` (FK)
  - `school_id` (FK, nullable), `education_stage_id` (FK), `classroom_id` (FK, nullable)
  - `discipline_id` (FK, nullable), `year`

### Entregáveis
- UI para criar/editar regras e componentes.
- Associação de regras por escola/turma/etapa/ano.
- Ajuste no cálculo do boletim para usar a regra configurada.

---

## 2) Refinamento de Infra (Prédios e Salas Físicas)

### Objetivo
Completar a hierarquia de rede: Secretaria → Escola → Prédios → Salas → Turmas.

### Mudanças no banco
- `buildings`
  - `id`, `school_id` (FK), `name`, `code`, `address`, `created_at`, `updated_at`
- `rooms`
  - `id`, `building_id` (FK), `name`, `code`, `capacity`, `type` (ex.: sala, laboratorio)
- Ajustes em `classrooms`
  - adicionar `room_id` (FK, nullable)

### Entregáveis
- CRUD de prédios e salas.
- Vincular turma a sala física.
- Ajuste nos relatórios/horários para considerar sala física.

---

## 3) Notas Descritivas (pareceres pedagógicos)

### Objetivo
Permitir registro de parecer pedagógico por disciplina e período (educação infantil e séries iniciais).

### Mudanças no banco
- `assessment_periods`
  - `id`, `school_id` (FK), `year`, `name` (ex.: Bimestre 1), `starts_at`, `ends_at`
- `assessment_descriptions`
  - `id`, `student_id` (FK), `classroom_id` (FK), `discipline_id` (FK)
  - `assessment_period_id` (FK)
  - `description` (text)
  - `created_at`, `updated_at`

### Entregáveis
- Interface de lançamento de pareceres por turma/período.
- Exibição do parecer no boletim/histórico.

---

## 4) Consolidação de Histórico (Fechamento de Ano)

### Objetivo
Criar workflow de fechamento que gere histórico definitivo, evitando dependência da tabela viva de matrículas.

### Mudanças no banco
- `school_year_closures`
  - `id`, `school_id` (FK), `year`, `status` (ex.: `aberto`, `processando`, `fechado`)
  - `started_at`, `finished_at`, `notes`
- `student_histories`
  - `id`, `student_id` (FK), `school_id` (FK), `year`, `classroom_name`, `education_stage`
  - `final_average`, `final_status` (ex.: aprovado, reprovado, transferido)
  - `attendance_percentage`, `created_at`, `updated_at`
- `student_history_items`
  - `id`, `student_history_id` (FK), `discipline_id` (FK)
  - `final_score`, `final_description`, `workload`

### Entregáveis
- Botão “Fechar Ano” com checklist de pendências.
- Geração do histórico definitivo.
- Bloqueio de edição após fechamento (exceto reabertura com permissão).

---

## 5) Gerador de Documentos Oficiais

### Objetivo
Emitir documentos oficiais com autenticação por código e registro auditável.

### Mudanças no banco
- `official_documents`
  - `id`, `type` (ex.: `ata_final`, `ficha_individual`, `declaracao_matricula`, `declaracao_transferencia`)
  - `student_id` (FK, nullable), `classroom_id` (FK, nullable), `school_id` (FK)
  - `year`, `payload` (json), `verification_code`, `issued_at`, `issued_by` (user_id)

### Entregáveis
- Emissão de: Ata de Resultado Final, Ficha Individual, Declarações.
- Página pública de verificação por código.

---

## 6) Validações cruzadas e ajustes finais

### Objetivo
Garantir consistência entre avaliações, histórico, documentos e exportações.

### Mudanças no banco
- Índices e constraints adicionais (ex.: chaves únicas por ano/turma/aluno).
- Campos auxiliares para auditoria (`created_by`, `updated_by` em módulos críticos).

### Entregáveis
- Validações antes do fechamento do ano.
- Checks para documentos oficiais.
- Ajustes finos em relatórios e consistência.

---

## Observações
- Ordem sugerida garante que regras de avaliação e períodos estejam prontas antes das notas descritivas e fechamento.
- Cada fase deve gerar um registro em `escolar/versao/` com os arquivos modificados e rollback possível.
