Commit graph

48 commits

Author SHA1 Message Date
NANDO9322
d471b4fc0d - Adiciona filtro de role RESEARCHER na tela de Aprovação.
- 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.
2026-01-31 14:20:51 -03:00
NANDO9322
c71095b5f3 feat: Refatoração da página de Perfil com novo layout Sidebar e correções de Header e Backend 2026-01-31 11:54:26 -03:00
NANDO9322
6b9299dd7a feat: improve logistics notification persistence and finance grouping 2026-01-30 19:16:54 -03:00
NANDO9322
a762bf8b5e feat(finance): melhorias no extrato UX e correções de config 2026-01-30 13:30:30 -03:00
NANDO9322
8469f7d55c Merge branch 'dev' into hml 2026-01-29 22:16:36 -03:00
NANDO9322
765496065a feat: suporte a FOT alfanumérico e correções de UI
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`.
2026-01-29 22:15:14 -03:00
Andre F. Rodrigues
b726a499f9
Merge pull request #48 from rede5/dev
merge dev > hml
2026-01-29 18:33:40 -03:00
Caio Machado
c043b2e243 fix(swagger): usar URL relativa para doc.json
Corrige o problema do Swagger UI mostrando localhost:8080 em produção.
A URL relativa "doc.json" funciona em qualquer ambiente pois o browser
resolve automaticamente o caminho completo baseado na URL atual.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:53:17 -03:00
Caio Machado
428ceed0cb feat: atualiza URL do Swagger para suportar ambientes de produção 2026-01-29 14:25:41 -03:00
Caio Machado
b02891a14c feat: adiciona configuração do Docker e arquivos de ambiente para suporte ao Dokku 2026-01-29 12:46:25 -03:00
NANDO9322
abf5612173 feat: correct folder structure and build path 2026-01-21 21:00:03 -03:00
NANDO9322
a3c42404d2 fix: final workflow and paths 2026-01-21 20:53:33 -03:00
NANDO9322
18c0601b11 jesus 2026-01-21 20:44:27 -03:00
JoaoVitorMS0
93d603da6c feat: implementa visualização de agenda para profissionais e melhorias no sistema
- Adiciona role 'agenda_viewer' para profissionais visualizarem apenas suas agendas
- Implementa middleware de autorização baseado em roles
- Adiciona validação de permissões nos endpoints de agenda
- Melhora exibição de dados financeiros e logísticos
- Atualiza componentes frontend para melhor UX
- Adiciona documentação sobre o papel de visualização de agenda
2026-01-19 17:06:27 -03:00
NANDO9322
943b4f6506 feat(financeiro): implementação do extrato financeiro do profissional e melhorias na agenda
- 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.
2026-01-16 16:07:49 -03:00
NANDO9322
175ee98f2a feat: notificações whatsapp com logística e correção de contagem de equipe
- 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.
2026-01-16 12:56:40 -03:00
NANDO9322
e78de535c1 feat: implementação do financeiro e suporte a múltiplas funções
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.
2026-01-15 18:07:39 -03:00
NANDO9322
7010e8e7d9 fix: correções de email, avatar e filtro de equipe no agendador
Backend:
- Corrigido mapeamento de email na listagem e busca por ID de profissionais. Agora o sistema utiliza o email do usuário vinculado (`usuario_email`) como fallback caso o email do perfil profissional esteja vazio.

Frontend:
- EventScheduler: Implementado filtro estrito para exibir apenas profissionais que foram explicitamente adicionados à equipe do evento ("Gerenciar Equipe"), prevenindo escalações indevidas.
- EventScheduler: Adicionada validação para ocultar cargos administrativos sem função operacional definida.
- ProfessionalDetailsModal: Corrigida a lógica de exibição do avatar para suportar a propriedade `avatar_url` (padrão atual do backend), resolvendo o problema de imagens quebradas ou ícones genéricos.
2026-01-12 12:20:08 -03:00
NANDO9322
7536bddacb feat: sistema de validação de conflitos e melhorias na UX da agenda
Implementa validação de horários para evitar conflitos no aceite de eventos, correções na sincronização de dados da agenda e melhorias na interface de gestão de equipe.

Backend:
- handler.go: Correção no retorno do endpoint [UpdateAssignmentStatus](cci:1://file:///c:/Projetos/photum/backend/internal/agenda/handler.go:279:0-313:1) para enviar JSON válido e evitar erros no frontend.
- service.go: Implementação da lógica de validação de conflitos antes de aceitar um evento.
- agenda.sql: Nova query `CheckProfessionalBusyDate` para verificação de sobreposição de horários.

Frontend:
- Dashboard.tsx: Adição de tooltip e texto para exibir o "Motivo da Rejeição" na gestão de equipe (Desktop/Mobile).
- EventScheduler.tsx: Filtro para excluir profissionais com status 'REJEITADO' e correção na label de 'Pendente'.
- EventDetails.tsx: Refatoração para usar estado global ([useData](cci:1://file:///c:/Projetos/photum/frontend/contexts/DataContext.tsx:1156:0-1160:2)), garantindo atualização imediata de datas e locais.
- DataContext.tsx: Mapeamento do campo `local_evento` e melhoria no tratamento de erro otimista.
- Ajustes gerais em ProfessionalDetailsModal, Login e correções de tipos.
2025-12-30 11:24:53 -03:00
NANDO9322
002dee832d feat: Ajusta a edição de eventos no gerenciamento de agenda, incluindo atribuição de profissionais e status 2025-12-29 19:55:50 -03:00
NANDO9322
cd00fb53f9 fix: ajustado fluxo e geracao de codigos de acesso 2025-12-29 17:21:03 -03:00
NANDO9322
5312945f7c feat: Adicionado gerenciamento de usuários administradores, funcionalidade de código de acesso e documentação da API. 2025-12-29 16:51:55 -03:00
NANDO9322
804a566095 feat(ops): implementa modulo operacional completo (escala, logistica, equipe)
- 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
2025-12-29 16:01:17 -03:00
NANDO9322
958918cb8a feat(team): fluxo completo de cadastro de equipe com senha, correções de vínculo e avatar
- 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.
2025-12-25 16:25:07 -03:00
NANDO9322
90841596c1 feat(profissionais): melhorar a visualização de detalhes e persistência dos profissionais
- 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.
2025-12-24 15:03:08 -03:00
NANDO9322
434548c158 feat(staffing): implementa sistema de disponibilidade e escalonamento
- Adiciona tabela `disponibilidade_profissionais` no schema
- Adiciona coluna `posicao` para mapa de profissionais no evento
- Implementa Service e Handler para gerenciar Disponibilidade (Set/Get)
- Implementa lógica de Escalonamento: listar disponíveis e atribuir posição
- Atualiza rotas da API e serviço do frontend

feat(frontend): implementa modal de detalhes e updates otimistas na equipe

- Adiciona componente ProfessionalDetailsModal para exibir dados completos do profissional
- Implementa update otimista em DataContext para adição/removação instantânea da equipe
- Corrige bug crítico de sintaxe e estrutura na Dashboard.tsx
- Adiciona badges de status (Pendente/Confirmado/Rejeitado) na listagem de equipe
- Corrige erro de referência de variável (professionalId) no fluxo de atribuição
2025-12-23 17:29:40 -03:00
NANDO9322
cd196a0275 feat(auth): adiciona tipo profissional ao schema e corrige avatar
- 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
2025-12-22 12:37:42 -03:00
NANDO9322
8515796ae9 fix: ajustado vinculo de seção ao atualizar pagina 2025-12-17 16:19:04 -03:00
NANDO9322
28b76a0f54 feat(fot-management): implementação de ações editar/excluir e correção no mapeamento da agenda
- 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
2025-12-16 18:10:46 -03:00
NANDO9322
66c7306553 feat: implementa filtro de agenda por usuário e corrige exibição de detalhes
- 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.
2025-12-16 13:44:02 -03:00
NANDO9322
a1a4d0a5d1 feat(backend): implementa módulo Agenda com lógica automática de status
- Cria tabela 'agenda' com FKs normalizadas e colunas específicas de evento
- Gera operações CRUD via SQLC para Agenda
- Implementa Service e Handler da Agenda
- Adiciona cálculo automático de 'status_profissionais' (OK/FALTA/ERRO) baseado na contagem de faltantes
- Registra rotas da Agenda em /api/agenda
- Atualiza documentação Swagger
- Corrige caminhos de importação e tipagem UUID no novo serviço
2025-12-15 18:49:59 -03:00
NANDO9322
d84d6ff022 feat(fot): implementa cadastro e listagem de FOT
- 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
2025-12-15 16:12:02 -03:00
NANDO9322
bae43a14cb fix: validação de usuários inativos e melhorias na lista de aprovação
- 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
2025-12-15 15:06:34 -03:00
NANDO9322
78c284c28a feat: Implementado a API de backend inicial e a interface de usuário de frontend para autenticação, gerenciamento de usuários e cadastro profissional.
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.
2025-12-15 11:17:34 -03:00
NANDO9322
a337e27f2a feat(auth): implementação do fluxo de cadastro duplo (clientes e profissionais)
- 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
2025-12-12 13:01:30 -03:00
NANDO9322
4aedbcbc91 feat: atualização de papéis no registro e correção de integração de tipos de evento
Backend:
- Atualiza endpoint /auth/register para aceitar e exigir 'role' no corpo da requisição.
- Atualiza handler de registro para criar perfil profissional condicionalmente baseado na role.
- Regenera documentação Swagger para refletir novos parâmetros de registro.
Frontend:
- Atualiza apiService para usar o endpoint correto /api/tipos-eventos.
- Corrige EventForm para renderizar objetos de tipo de evento corretamente (usando estrutura id/nome).
- Corrige erro de sintaxe JSX no componente EventFiltersBar.
2025-12-12 11:08:52 -03:00
NANDO9322
c151484aa6 feat(auth): melhora registro e login com vinculo profissional e status ativo
- Adiciona suporte a nome e telefone no cadastro (/register)
- Implementa criacao automatica de perfil profissional vinculado ao usuario
- Define 'ativo=false' como padrao para novos cadastros (pendente aprovacao)
- Separa DTOs de Request para Login e Registro para validacao correta
- Expora campo 'ativo' no response do Login
2025-12-10 17:49:14 -03:00
NANDO9322
87326c4e29 feat(cadastro-fot): implementa crud completo de FOT com joins e campo booleano
- Cria tabela 'cadastro_fot' com integracao (FKs) para Empresas, Cursos e Formaturas
- Implementa endpoints (GET/POST/PUT/DELETE) em '/api/cadastro-fot'
- Otimiza rota GET utilizando JOINs para retornar nomes das entidades estrangeiras
- Define campo 'pre_venda' como BOOLEAN e 'fot' como identificador unico (int)
- Adiciona tratativa robusta para tipos numericos no Postgres
2025-12-10 13:00:47 -03:00
NANDO9322
8e67dcfd49 feat: Auto-Migração, Seeding de Preços e CRUD de Eventos 2025-12-10 11:59:18 -03:00
NANDO9322
323261fa23 feat: garantir que o banco seja ajustado a cada deploy 2025-12-09 18:02:28 -03:00
NANDO9322
566bb540e4 feat: (back) Add Dockerfile 2025-12-09 17:52:04 -03:00
NANDO9322
2faa3aa2f9 feat: (back) Add Dockerfile 2025-12-09 17:22:47 -03:00
NANDO9322
7f1d4144db feat(api): Implementado novas tabelas ,refatorado a autenticação e aprimorado a documentação Swagger
- Implementado CRUDs para: cursos, empresas, anos_formaturas, tipos_servicos, tipos_eventos
- Implementado lógica de precificação de eventos (precos_tipos_eventos)
- Refatorado a autenticação: Simplificar o payload de cadastro/login (somente e-mail/senha), função padrão 'profissional'
- Corrigido o middleware de autenticação: Resolvido a incompatibilidade de tipo UUID vs String (corrigir erro 500)
- Aprimorado o Swagger: Adicionado structs nomeados, validação de duplicatas (409 Conflict) e segurança BearerAuth
- Atualizar o esquema do banco de dados: Adicionar tabelas e restrições
2025-12-09 17:05:19 -03:00
João Vitor
3096f07102 feat: adicionar sistema completo de gestão de cursos e turmas
- Adicionada interface Course em types.ts
- Criado CourseForm para cadastro/edição de turmas
- Implementada página CourseManagement com tabelas Excel-like
- Adicionadas funções CRUD de cursos no DataContext
- Integrado dropdown de cursos no EventForm baseado na instituição
- Adicionada rota 'courses' no App.tsx
- Link 'Gestão de Cursos' inserido no menu principal após 'Equipe & Fotógrafos'
- Removido 'Configurações' do menu principal (mantido apenas no dropdown do avatar)
- Implementado comportamento de toggle para seleção de universidades
- Sistema restrito a SUPERADMIN e BUSINESS_OWNER
2025-12-08 02:53:00 -03:00
NANDO9322
9ee8ca089b feat: Implementa estrutura inicial da API para profissionais, funções e autenticação com integração de banco de dados e documentação Swagger. 2025-12-05 11:56:03 -03:00
NANDO9322
bc27417649 feat: add Docker Compose configuration for a PostgreSQL database service. 2025-12-03 12:47:53 -03:00
NANDO9322
20284c25e7 chore: atualizar referências para nova URL do repositório 2025-12-03 11:38:01 -03:00
João Vitor
38ebeba237 Adiciona pasta backend ao repositório 2025-12-03 09:47:46 -03:00