Tela: Editar Turma (/Turmas/Edit/:id)
?? Tela: Editar Turma
Rota: /Turmas/Edit/:id
Tipo: Formulário de edição completo
Permissão necessária: Administrador ou Gerente
?? Visão Geral da Tela
Formulário extenso e completo para edição de todos os dados de uma turma existente, incluindo informações básicas, identidade visual, localização, cronograma, capacidade e coordenação.
?? Elementos da Interface
1. Hero Section (Cabeçalho Destacado)
- Badge de Status: Turma ativa/inativa/suspensa com ícone
- Nome da Turma: Título grande (H2)
- Metadados:
- Código da turma
- Curso
- Instituição
- Ano de formatura
- Botão Voltar: Retorna para listagem
2. Estado de Carregamento
Spinner centralizado com mensagem "Buscando dados atualizados da turma..."
3. Formulário Principal (8 Seções)
Seção 1: Informações Gerais
- Código (readonly)
- Nome da turma *
- Curso *
- Instituição *
- Modalidade (Presencial, EAD, etc.)
- Turno (Matutino, Noturno, etc.)
- Ano de formatura *
- Status (select: ativa, inativa, suspensa)
- Toggle: Turma ativa no portal
Seção 2: Identidade Visual e Comunicação
- Tema da formatura
- Cor principal (color picker + input hex)
- Preview da cor selecionada
- URL da imagem de capa
- Site oficial
- Instagram oficial
- Grupo de WhatsApp
Seção 3: Localização e Cronograma
- Cidade
- Estado (UF, maxlength 2)
- Início do semestre (date)
- Fim do semestre (date)
- Data da colação (date)
- Data do baile (date)
- Local da cerimônia
- Local da festa
Seção 4: Capacidade e Regras de Cadastro
- Limite de formandos *
- Matriculados (readonly)
- Toggle: Requer assinatura de contrato
- Toggle: Permitir pré-cadastro online
- Texto do contrato padrão (textarea)
Seção 5: Coordenação e Observações
- Coordenador(a) da turma
- E-mail do coordenador
- Telefone do coordenador
- Observações internas (textarea, privado para admins)
4. Sidebar com Cards de Resumo
Card 1: Status da Turma
- Situação atual
- Formandos ativos / Limite
- Pré-cadastro (Habilitado/Desabilitado)
- Contrato obrigatório (Obrigatório/Opcional)
Card 2: Histórico
- Criada em (data formatada)
- Atualizada em (data formatada)
Card 3: Ações
- Salvar alterações: Botão primário
- Cancelar: Botão outline secundário
- Excluir turma: Botão outline danger
? Funcionalidades Interativas
Color Picker Sincronizado
- Input color e input text sincronizados
- Preview visual atualiza em tempo real
- Aceita valores hex com ou sem #
Validação em Tempo Real
- Campos obrigatórios marcados com *
- Validação HTML5 nativa
- Feedback visual em campos inválidos
Estados do Hero
Badge de status muda cor e ícone conforme status da turma:
- Ativa: Verde com ícone de foguete
- Inativa: Vermelho com ícone de quadrado off
- Suspensa: Amarelo com ícone de alerta
?? Notificações e Feedback
- Ao salvar com sucesso: Alert "Turma atualizada com sucesso!" + redirect
- Erro ao salvar: Alert com mensagem de erro
- Ao excluir: Confirmação "Tem certeza? Esta ação não pode ser desfeita"
- Exclusão bem-sucedida: Alert + redirect para Index
?? Regras de Negócio
- Apenas turmas do tenant logado podem ser editadas
- Código da turma é readonly (não pode ser alterado)
- Quantidade de matriculados é readonly (calculado automaticamente)
- Datas não são obrigatórias, podem ser null
- Cor padrão: #5B6ECD
- URLs devem seguir formato válido
?? Navegação
- Ao salvar: Redireciona para /Turmas/Index
- Ao cancelar: Redireciona para /Turmas/Index
- Ao excluir: Redireciona para /Turmas/Index
?? Integração com API
Carregamento: GET /api/admin/turmas/:id
Atualização: PUT /api/admin/turmas/:id
Exclusão: DELETE /api/admin/turmas/:id
?? Responsividade
Desktop (> 1200px): Layout 2 colunas (col-xxl-8 + col-xxl-4)
Tablet/Mobile: Layout 1 coluna empilhada