Frontend:
- Implementa leitura e processamento de arquivos Excel (.xlsx) para Profissionais.
- Adiciona validação e truncamento automático de campos (CPF, UF, Whatsapp) para evitar erros.
- Cria lógica de mapeamento automático de Funções (ex: Fotógrafo, Cinegrafista).
- Adiciona card "Total Geral" na dashboard de Equipe (/equipe).
Backend:
- Cria endpoint e serviço de importação para cadastro em massa.
- Implementa tratamento de erros robusto e prevenção de panics (nil pointers).
- Ajusta queries de inserção e atualização (Upsert) no banco de dados.
Geral:
- Funcionalidade de importação estabilizada e validada.
- Implementa fluxo de edicao inteligente e otimizacoes
- Implementa deteccao de CPF existente no Admin (TeamPage) com redirecionamento automatico para Edicao.
- Isola formulario em ProfessionalModal para performance.
- Adiciona pre-checagem de CPF na API publica (retornando apenas dados seguros).
- Otimiza renderizacao da lista de equipe.
- Backend: Implementada lógica de importação de Agenda (Upsert) em `internal/agenda`.
- Backend: Criadas queries SQL para busca de FOT e Tipos de Evento.
- Frontend: Adicionada aba de Importação de Agenda em `ImportData.tsx`.
- Frontend: Implementado Parser de Excel para Agenda com tratamento de datas.
- UX: Adicionada Barra de Rolagem Superior Sincronizada na Tabela de Eventos.
- UX: Implementado `LoadingScreen` global unificado (Auth + DataContext).
- Perf: Adicionada Paginação no `EventTable` para resolver travamentos com grandes listas.
- Security: Proteção de rotas de importação (RequireWriteAccess).
Backend:
- Migration 007: alterada coluna `fot` de INTEGER para VARCHAR(50).
- Ajustados serviços (finance, agenda) e handlers para processar FOT como string.
- Regenerados modelos e queries do banco de dados (sqlc).
Frontend:
- [FotForm](cci:1://file:///c:/Projetos/photum/frontend/components/FotForm.tsx:13:0-348:2): Permitido input de texto/alfanumérico (ex: "20000MG").
- [EventTable](cci:1://file:///c:/Projetos/photum/frontend/components/EventTable.tsx:29:0-684:2): Removido bloqueio do botão "Aprovar" para equipes incompletas.
- [Dashboard](cci:1://file:///c:/Projetos/photum/frontend/pages/Dashboard.tsx:31:0-1749:2): Corrigida duplicação do campo "Qtd Formandos".
- [Dashboard](cci:1://file:///c:/Projetos/photum/frontend/pages/Dashboard.tsx:31:0-1749:2): Filtros de "Gerenciar Equipe" agora usam funções dinâmicas (IDs) em vez de valores fixos.
- `Navbar`: Logo agora redireciona corretamente para `/painel`.
- Implementa envio de notificação WhatsApp ao aprovar evento ("Confirmado"), incluindo detalhes de logística (carro, motorista, passageiros) e endereço formatado.
- Adiciona coluna `funcao_id` em `agenda_profissionais` para distinguir a função específica do profissional no evento.
- Corrige bug de contagem duplicada na tabela de eventos para profissionais com múltiplas funções.
- Corrige validação ao aceitar convite para checar lotação apenas da função designada.
- Adiciona exibição da função (ex: Fotógrafo, Cinegrafista) na lista lateral do painel.
Este commit introduz o módulo financeiro completo e refatora o sistema de profissionais para suportar múltiplas funções, corrigindo a contabilização e validação de equipes.
Principais alterações:
- **Módulo Financeiro:**
- Criação da tabela `financial_transactions` e queries associadas.
- Implementação do backend (Handler/Service) para gerenciar transações.
- Nova página [Finance.tsx](cci:7://file:///c:/Projetos/photum/frontend/pages/Finance.tsx:0:0-0:0) com listagem, edição, filtros avançados e agrupamento por FOT.
- Correção na busca de FOTs e formatação de datas.
- **Gestão de Equipe e Profissionais:**
- Refatoração para suportar múltiplas funções por profissional (Backend & Frontend).
- Atualização do [Dashboard](cci:1://file:///c:/Projetos/photum/frontend/pages/Dashboard.tsx:31:0-1663:2) e [EventTable](cci:1://file:///c:/Projetos/photum/frontend/components/EventTable.tsx:28:0-659:2) para contabilizar corretamente profissionais (Fotografo, Cinegrafista, Recepcionista) verificando a lista de funções.
- Implementação de validação de cota no aceite de convites (bloqueia se a equipe da função específica já estiver completa).
- Ajuste visual nos indicadores de "Equipe Completa" e contadores de faltantes na listagem de eventos.
- **Geral:**
- Atualização da documentação Swagger.
- Ajustes de tipagem e migrações de banco de dados.
- Adicionar restrições de exclusão de FOT quando há eventos associados
- Implementar tooltips para motivos de recusa de eventos por fotógrafos
- Filtrar eventos recusados das listas de fotógrafos
- Adicionar sistema de filtros avançados no modal de gerenciar equipe
- Implementar campos completos de gestão de equipe (fotógrafos, recepcionistas, cinegrafistas, estúdios, pontos de foto, pontos decorados, pontos LED)
- Adicionar colunas de gestão na tabela principal com cálculos automáticos de profissionais faltantes
- Implementar controle de visibilidade da seção de gestão apenas para empresas
- Adicionar status visual "Profissionais OK" com indicadores de completude
- Implementar sistema de cálculo em tempo real de equipe necessária vs confirmada
- Adicionar validações condicionais baseadas no tipo de usuário
- Frontend:
- Implementa visualização em cards mobile para lista de Eventos (/painel), Gestão de Cursos (/cursos) e modal de Equipe.
- Corrige rolagem e layout do modal de detalhes do profissional em telas pequenas.
- Unifica seleção de turma (Curso/Inst/Ano) no formulário de eventos para simplificar UX.
- Adiciona botão "Voltar" no formulário de eventos.
- Adiciona integração de busca de CEP e validação de "Qtd Estúdios".
- Ajusta inputs de avaliação (estrelas) e exibição de disponibilidade de horário.
- Atualiza interfaces (types.ts) para incluir campos novos (cep, email no profissional).
- Backend:
- Adiciona persistência do campo "email" na tabela de profissionais.
- Corrige bug de persistência nula no campo "media" (avaliação).
- Atualiza queries SQL e gera novos modelos (sqlc) para refletir mudanças no schema.
- Atualiza documentação Swagger.
- Implementadas ações de Editar e Excluir na página de Gestão de FOT
- Adicionado filtro de busca para FOTs
- Corrigido desalinhamento de colunas na tabela de Gestão de FOT
- Atualizado FotForm para suportar a edição de registros existentes
- Corrigido erro de renderização do React no Dashboard mapeando corretamente os objetos de atribuição
- Removidos dados de mock (INITIAL_EVENTS) e corrigido erro de referência nula no DataContext
- Adicionados métodos de atualização/exclusão ao apiService
- Backend: Adiciona `user_id` na tabela agenda e implementa queries de filtro por role.
- Frontend(Context): Corrige dependência do `useEffect` para garantir busca correta ao logar.
- Frontend(Context): Melhora mapeamento de dados (Número FOT, Fallback de Nome, Formandos).
- Frontend(UI): Atualiza EventTable e Dashboard para exibir número FOT e dados vinculados corretamente.
- Frontend(Fix): Resolve erros de TypeScript no enum EventStatus.
- Sistema FOT (Formatura Operations Tracking):
* Tela de Gestão FOT (/cursos) com tabela Excel-style
* Modal CourseForm com 10 campos (FOT, Empresa, Instituição, etc)
* Validação de FOT (5 dígitos numéricos)
* Edição de turmas ao clicar na linha
* Integração com API backend (empresas, níveis educacionais, universidades)
- Dashboard renovado (/painel):
* Tabela com 8 colunas (FOT, Data, Curso, Instituição, Ano, Empresa, Tipo, Status)
* Filtros avançados: FOT (busca numérica), Data, Tipo de Evento
* Removidos filtros de Estado e Cidade
* Página de detalhes com tabela vertical (12 informações)
* Botão Aprovar redireciona para modal de equipe
- Sistema de Aprovação Dupla (/aprovacao):
* 2 tabelas separadas por abas (Usuários Normais e Profissionais)
* Coluna Universidade renomeada para Empresa
* Coluna Função nos profissionais
* Workflow de aprovação com atribuição de equipe
- Cadastro Profissional (/cadastro-profissional):
* Formulário específico para fotógrafos
* Dropdown de Função Profissional da API
* Tratamento de erro quando backend offline
- Modal de Criar Evento:
* Tipo de Evento como primeiro campo
* Nome do Evento (Opcional) como segundo campo
- Componentes novos:
* EventTable.tsx - Tabela de eventos com ordenação
* EventFiltersBar.tsx - Filtros avançados (3 filtros)
* CourseForm.tsx - Formulário FOT completo
* ProfessionalForm.tsx - Cadastro profissional
- API Service:
* Integração com backend Go
* Endpoints: /api/empresas, /api/funcoes, /api/niveis-educacionais, /api/universidades, /graduation-years
- Documentação:
* README.md principal atualizado
* frontend/README.md atualizado
* Documentação completa de componentes e features
- Adiciona coluna de Cidade com ordenação independente na tabela de eventos
- Implementa ordenação clicável em todas as colunas (nome, tipo, data, horário, cidade, local, status)
- Remove dependência de estado para filtro de cidade
- Adiciona exibição de curso/turma no modal de detalhes do evento
- Torna campo curso/turma obrigatório no formulário de solicitação de evento
- Remove campo de imagem de capa do formulário
- Corrige importação de getActiveCoursesByInstitutionId no Dashboard