?? 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