Backend:
- Adiciona endpoint `PUT /api/me` para permitir atualização de dados do usuário logado.
- Implementa query `UpdateCadastroCliente` e função de serviço [UpdateClientData]para persistir alterações de clientes.
- Atualiza handlers [Me], [Login] e [ListPending] para incluir e mapear corretamente campos de cliente (CPF, Endereço, Telefone).
- Corrige mapeamento do campo `phone` na struct de resposta do usuário.
Frontend:
- Habilita o formulário de edição em [Profile.tsx] para usuários do tipo 'CLIENTE' (Event Owner).
- Adiciona função [updateUserProfile] em [apiService.ts] para consumir o novo endpoint.
- Atualiza [AuthContext] para persistir campos do cliente (CPF, Endereço, etc.) durante a restauração de sessão ([restoreSession], corrigindo o bug de perfil vazio ao recarregar a página.
- Padroniza envio de dados no Registro e Aprovação para usar `snake_case` (ex: `cpf_cnpj`, `professional_type`).
- Atualiza tipos em [types.ts] para incluir campos de endereço e documentos.
- Corrige bug onde a região não era salva no banco durante a criação de FOT (campo faltante no service).
- Adiciona fallback para garantir região "SP" caso o header x-regiao esteja vazio.
- Altera ordenação da listagem para updated_at DESC (editados aparecem no topo).
Backend:
- Adiciona campo `contacts` (JSONB) na tabela `agendas` e atualiza lógica de criação.
Frontend:
- Adiciona campos dinâmicos de contato no formulário de Novo Evento.
- Otimiza busca do Mapbox priorizando a região selecionada (SP/MG).
- Implementa "Deep Linking" no Dashboard (abrir detalhes do evento direto via URL).
- Corrige "flicker" (piscada da lista) ao carregar detalhes via link permitindo carregamento suave.
- Adiciona botão "Aprovar" e fluxo de aprovação na visualização de detalhes.
- Corrige fluxo de edição (salvar retorna para detalhes sem recarregar a página).
- Corrige navegação dos botões "Voltar" em Detalhes e Logística para retornarem corretamente à lista/painel.
- Melhora layout do cabeçalho de detalhes (remove ID vazio e unifica títulos duplicados).
- Ajusta clique no Logo para forçar reset da navegação para o Painel.
Detalhes das alterações:
[Banco de Dados]
- Ajuste nas constraints UNIQUE das tabelas de catálogo (cursos, empresas, tipos_eventos, etc.) para incluir a coluna `regiao`, permitindo dados duplicados entre regiões mas únicos por região.
- Correção crítica na constraint da tabela `precos_tipos_eventos` para evitar conflitos de UPSERT (ON CONFLICT) durante a inicialização.
- Implementação de lógica de Seed para a região 'MG':
- Clonagem automática de catálogos base de 'SP' para 'MG' (Tipos de Evento, Serviços, etc.).
- Inserção de tabela de preços específica para 'MG' via script de migração.
[Backend - Go]
- Atualização geral dos Handlers e Services para filtrar dados baseados no cabeçalho `x-regiao`.
- Ajuste no Middleware de autenticação para processar e repassar o contexto da região.
- Correção de queries SQL (geradas pelo sqlc) para suportar os novos filtros regionais.
[Frontend - React]
- Implementação do envio global do cabeçalho `x-regiao` nas requisições da API.
- Correção no componente [PriceTableEditor](cci:1://file:///c:/Projetos/photum/frontend/components/System/PriceTableEditor.tsx:26:0-217:2) para carregar e salvar preços respeitando a região selecionada (fix de "Preços zerados" em MG).
- Refatoração profunda na tela de Importação ([ImportData.tsx](cci:7://file:///c:/Projetos/photum/frontend/pages/ImportData.tsx:0:0-0:0)):
- Adição de feedback visual detalhado para registros ignorados.
- Categorização explícita de erros: "CPF Inválido", "Região Incompatível", "Linha Vazia/Separador".
- Correção na lógica de contagem para considerar linhas vazias explicitamente no relatório final, garantindo que o total bata com o Excel.
[Geral]
- Correção de diversos erros de lint e tipagem TSX.
- Padronização de logs de erro no backend para facilitar debug.
- Frontend: Refatoração do componente UserApproval para corrigir perda de foco nos inputs (extração de modais).
- Backend: Implementação da criação automática do perfil profissional (cadastro_profissionais) ao criar um novo usuário admin.
- Backend: Correção para evitar duplicidade de profissionais, utilizando o email para vincular ao perfil existente.
- API: Ajuste para retornar dados completos (nome, telefone, empresa) na listagem de usuários do admin.
- Implementa edição de Role na tela de Aprovação com suporte a funções virtuais (Cine/Recep).
- Atualiza apiService com updateUserRole.
- Corrige visibilidade do Dashboard para RESEARCHER (DataContext).
- Backend: ListPending retorna tipo_profissional original.
- Backend:
- Adicionado endpoint para extrato financeiro do profissional (/meus-pagamentos).
- Atualizada query SQL para incluir nome da empresa e curso nos detalhes da transação.
- Adicionado retorno de valores (Free, Extra, Descrição) na API.
- Frontend:
- Nova página "Meus Pagamentos" com modal de detalhes da transação.
- Removido componente antigo PhotographerFinance.
- Ajustado filtro de motoristas na Logística para exibir apenas profissionais atribuídos e com carro.
- Corrigida exibição da função do profissional na Escala (mostra a função atribuída no evento, ex: Cinegrafista).
- Melhoria no botão de voltar na tela de detalhes do evento.
- 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.
- 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
- Backend: Migrations para tabelas 'escalas' e 'logistica' (transporte)
- Backend: Handlers e Services completos para gestão de escalas e logística
- Backend: Suporte a auth vinculado a perfil profissional
- Frontend: Nova página de Detalhes Operacionais (/agenda/:id)
- Frontend: Componente EventScheduler com verificação robusta de conflitos
- Frontend: Componente EventLogistics para gestão de motoristas e caronas
- Frontend: Modal de Detalhes de Profissional unificado (Admin + Self-view)
- Frontend: Dashboard com modal de gestão de equipe e filtros avançados
- Fix: Correção crítica de timezone (UTC) em horários de agendamento
- Fix: Tratamento de URLs no campo de local do evento
- Fix: Filtros de profissional com carro na logística
- Frontend: Adiciona campos de senha e visibilidade na tela de Equipe.
- Frontend: Implementa criação de usuário prévia ao cadastro do profissional.
- Backend (Auth): Remove criação duplicada de perfil e ativa usuários automaticamente.
- Backend (Auth): Inclui dados do profissional (avatar) na resposta do endpoint /me.
- Backend (Profissionais): Corrige chave de contexto ('role') para permitir vínculo correto de usuário.
- Backend (Profissionais): Sincroniza exclusão para remover conta de usuário ao deletar profissional.
- Docs: Atualização dos arquivos Swagger.
- Adiciona a coluna `email` ao banco de dados para corrigir a persistência do e-mail de contato.
- Atualiza o `Team.tsx` para exibir todos os campos do profissional no modal de detalhes (Dados Financeiros, Detalhamento de Avaliações).
- Corrige o cálculo e a persistência de `media` (ajuste para valor nulo).
- Implementa integração com CEP para preenchimento automático de endereço.
- Adiciona validações para valores negativos e corrige problemas de layout.
- Adiciona coluna `tipo_profissional` à tabela `usuarios`
- Atualiza handlers e services do Backend Go para persistir o tipo
- Atualiza registro no Frontend para enviar o nome da função (ex: "Cinegrafista")
- Corrige uploads S3 para compatibilidade com Civo (PathStyle)
- Script para definir política pública de leitura no bucket S3
- Adiciona fallback para imagens de avatar na Navbar
- 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.
- Refatora CourseManagement para listar dados de /api/cadastro-fot
- Cria componente FotForm para novo cadastro de turmas
- Adiciona validação de unicidade para número FOT
- Integra dropdowns com endpoints /api/cursos e /api/anos-formaturas
- Corrige duplicidade no registro de profissionais no backend
- Bloqueia login e auto-login para usuários com status inativo
- Implementa logout chamando endpoint do backend para limpar cookies
- Adiciona verificação de status ativo na restauração de sessão
- Inclui coluna 'Telefone' na tabela de aprovação de cadastros
- Corrige bug de renderização nas tabelas ao trocar de abas
implementação de listagem de usuários admin, padronização de roles e melhorias nos cadastros
Backend:
- Adicionados endpoints administrativos [ListUsers](cci:1://file:///c:/Projetos/photum/backend/internal/auth/service.go:268:0-270:1) e [GetUser](cci:1://file:///c:/Projetos/photum/backend/internal/auth/handler.go:475:0-514:1).
- Padronizadas as constantes de [UserRole](cci:1://file:///c:/Projetos/photum/backend/internal/auth/service.go:202:0-216:1) (`SUPERADMIN`, `BUSINESS_OWNER`, etc.) para alinhar com o frontend.
- Atualizada a função [EnsureDemoUsers](cci:1://file:///c:/Projetos/photum/backend/internal/auth/service.go:230:0-266:1) para migrar usuários existentes para as novas roles.
- Documentação Swagger regenerada.
Frontend:
- Adicionado busca automática de CEP no formulário de Cadastro Profissional (AwesomeAPI).
- Adicionado texto de ajuda e ordenação (priorizando "Não Cadastrado") no select de Empresas.
- backend: atualizado /auth/register para retornar userId e access_token
- backend: desabilitada criação automática de perfil parcial no registro
- backend: adicionado suporte a cookie access_token no middleware e handlers
- frontend: atualizado AuthContext para enviar role e retornar token
- frontend: implementado registro de profissional em 2 etapas (Usuário -> Perfil)
- frontend: adicionado serviço createProfessional com suporte a header de auth
- frontend: definido role correto (EVENT_OWNER) para cadastro de clientes
- 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
- Tradução de rotas para português (entrar, cadastro, configuracoes, etc)
- Ajuste de responsividade na página Financeiro (mobile)
- Correção navegação Configurações para usuário CEO/Business Owner
- Modal de gerenciamento de equipe com lista de profissionais
- Exibição de fotógrafos, cinegrafistas e recepcionistas disponíveis por data
- Ajuste de layout da logo nas telas de login e cadastro
- Correção de z-index do header
- Melhoria de espaçamento e padding em cards