Tela: Listagem de Formandos (/Formandos)
?? Tela: Listagem de Formandos
Rota: /Formandos ou /Formandos/Index
Tipo: Tela de listagem com tabela paginada
Permissão necessária: Administrador ou Gerente
?? Visão Geral da Tela
Tela principal de gerenciamento de formandos com listagem completa, filtros avançados, aprovação em massa e exportação de dados.
?? Elementos da Interface
1. Hero Section (Cabeçalho Destacado)
- Título: "Gestão de Formandos"
- Contador principal: Total de formandos no sistema (número grande)
- Subtítulo: "Gerencie aprovações, contratos e cadastros com filtros inteligentes"
- Fundo: Gradiente roxo (667eea ? 764ba2)
- Botões de ação:
- ? Novo Formando
- ?? Exportar (Excel com filtros aplicados)
2. Cards de Estatísticas (4 cards)
| Card | Métrica | Descrição |
|---|---|---|
| ? Pendentes | Número absoluto | Formandos aguardando revisão administrativa |
| ? Aprovados | Número + indicador | Formandos aprovados, prontos para onboarding |
| ? Rejeitados | Número + indicador | Cadastros rejeitados (revisar justificativas) |
| ?? Taxa de Aprovação | Percentual | % de aprovados sobre total (meta: 85%) |
3. Barra de Filtros Avançados
- Status: Dropdown (Todos, Pendentes, Aprovados, Rejeitados)
- Tipo: Dropdown (Todos, Formando, Comissão, Formando Infantil)
- Turma / Código: Campo de texto (ID ou código)
- Busca: Campo de texto (busca por nome, e-mail, CPF ou telefone)
- Botões:
- ?? Filtrar (aplica filtros)
- ?? Limpar (remove todos os filtros)
- Pills de filtros ativos: Exibe pills azuis para cada filtro aplicado
4. Tabela de Dados
Tabela responsiva com as seguintes colunas:
| Coluna | Conteúdo | Visibilidade |
|---|---|---|
| Formando | Avatar ou inicial + Nome completo + CPF + Badge de nome social | Sempre visível |
| Contato | E-mail + Celular + Instagram | Desktop (d-none d-lg-table-cell) |
| Turma | Nome da turma + Código + Curso | Tablet+ (d-none d-md-table-cell) |
| Status | Badge: Aprovado (verde) / Pendente (amarelo) / Rejeitado (vermelho) | Sempre visível |
| Tipo | Badge: Formando / Comissão / Formando Infantil | Tablet+ (d-none d-md-table-cell) |
| Contrato | Status do contrato + Link para visualizar + Info de camisa personalizada | Desktop (d-none d-lg-table-cell) |
| Cadastro | Data de criação + Data de atualização | Desktop (d-none d-lg-table-cell) |
| Ações | Botões de ação (ver abaixo) | Sempre visível |
5. Botões de Ação por Linha
Cada linha possui os seguintes botões:
- ? Aprovar: Aparece apenas para formandos pendentes (modal de confirmação)
- ??? Ver detalhes: Abre tela de detalhes completos
- ?? Editar informações: Abre formulário de edição
- ??? Excluir formando: Remove cadastro (confirmação via SweetAlert2)
6. Estado Vazio
Quando não há formandos:
- Ícone: ti-users-off (ícone grande centralizado)
- Título: "Nenhum formando encontrado"
- Descrição: "Ajuste os filtros ou inicie um novo cadastro"
- Botão: "Cadastrar primeiro formando" (primário)
? Funcionalidades Interativas
Aprovação de Formando (SweetAlert2)
- Modal de confirmação: "Aprovar formando?"
- Loading state: "Aprovando formando..."
- Sucesso: Toast verde + reload da página
- Erro: Toast vermelho com mensagem de erro
Exclusão de Formando (SweetAlert2)
- Modal de confirmação: "Excluir formando?" + "Esta ação não pode ser desfeita"
- Loading state: "Excluindo formando..."
- Sucesso: Toast verde + reload da página
- Erro: Toast vermelho com mensagem de erro
Exportação
- Botão "Exportar" chama /Formandos/ExportarExcel
- Inclui filtros aplicados na URL (status, turmaId, search, tipoFormando)
- Gera arquivo Excel com os dados filtrados
?? Notificações e Feedback
- Sucesso ao aprovar: Toast verde "Formando aprovado com sucesso"
- Erro ao aprovar: Toast vermelho com mensagem específica
- Sucesso ao excluir: Toast verde "Formando excluído com sucesso"
- Erro ao excluir: Toast vermelho com mensagem específica
?? Regras de Negócio
- Apenas formandos do tenant logado são exibidos (multi-tenancy)
- Botão "Aprovar" só aparece para formandos pendentes
- Status do contrato é calculado dinamicamente (com base em última assinatura)
- Taxa de aprovação é calculada em tempo real
- Formandos infantis são identificados por flag específica
?? Integração com API
Aprovar: POST /Formandos/Approve/:id
Excluir: POST /Formandos/Delete/:id
Exportar: GET /Formandos/ExportarExcel?status=...&turmaId=...&search=...&tipoFormando=...
?? Responsividade
Desktop (> 1200px): Todas as colunas visíveis
Tablet (768px - 1200px): Oculta colunas "Contato", "Contrato" e "Cadastro"
Mobile (< 768px): Exibe cards no lugar da tabela (implementação futura)
?? Navegação
- Ao clicar em "Novo Formando": Vai para /Formandos/Create
- Ao clicar em "Exportar": Download direto do arquivo Excel
- Ao clicar em "Ver detalhes": Vai para /Formandos/Details/:id
- Ao clicar em "Editar": Vai para /Formandos/Edit/:id