Commit graph

95 commits

Author SHA1 Message Date
Tiago Yamamoto
59cd1fa01a feat: add pagination to candidates list endpoint
- Add PaginationInfo struct to candidates DTO
- Update ListCandidates service to support page/perPage params
- Update handler to parse pagination query params
- Update frontend candidates page with pagination controls
2026-02-23 18:02:41 -06:00
Tiago Yamamoto
fa1d397c01 fix: sync credentials services between backend and frontend
- Update ListConfiguredServices to use correct service names
- Add fcm_service_account, appwrite, smtp to BootstrapCredentials
- Remove unused payment_gateway from frontend schema
- Rename firebase to fcm_service_account in frontend
2026-02-23 16:20:25 -06:00
Tiago Yamamoto
f061763ae4 fix: add category field to admin tickets page 2026-02-23 15:53:17 -06:00
Tiago Yamamoto
74afffa4a9 feat: add category field to tickets system 2026-02-23 15:43:35 -06:00
Tiago Yamamoto
5ce0980090 fix: move loading check after useEffect to prevent infinite loading 2026-02-23 13:13:57 -06:00
Tiago Yamamoto
1b35b8dd70 fix: resolve infinite loading on settings page
- Remove duplicate setLoading calls in loadBackoffice
- Add proper error handling with catch for all API calls
- Wrap useEffect initialization in try/catch/finally
2026-02-23 12:56:23 -06:00
Tiago Yamamoto
754acd9d3c feat: merge backoffice into settings and add CRUD for credentials
- Move backoffice functionality into settings page as new tab
- Remove standalone backoffice page and sidebar link
- Add edit/delete buttons for credentials management
- Update credentials service to allow overwriting existing credentials
- Add API documentation for system credentials endpoints
2026-02-23 12:42:06 -06:00
Tiago Yamamoto
f22bd51c5d feat: fix language switcher visibility in dashboard header and align pagination buttons 2026-02-23 12:07:07 -06:00
Tiago Yamamoto
fd2fa328ad chore: replace native window.confirm with Custom ConfirmModal 2026-02-23 11:24:55 -06:00
Tiago Yamamoto
364826c5c8 fix(dashboard): align CRUD pages with backend fields
jobs/page.tsx:
- Edit dialog now exposes all UpdateJobRequest fields: employmentType,
  workMode, salaryMin/max/type/currency, salaryNegotiable, languageLevel,
  visaSupport, location, status, isFeatured, description
- Fix AdminJob type to include all JobWithCompany fields returned by API
- Fix jobRows mapping that was hardcoding location/type/workMode/isFeatured
- Add isFeatured to CreateJobPayload type

applications/page.tsx:
- Fix status mismatch: reviewing→reviewed, interview→shortlisted, accepted→hired
- Align statusConfig labels/keys with backend constraint (pending/reviewed/
  shortlisted/rejected/hired)
- Update stats counters to use corrected status keys

companies/page.tsx:
- Add logoUrl and yearsInMarket to create and edit forms
- Populate editFormData from company object on edit open
- Send logoUrl/yearsInMarket in update payload

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 18:27:30 -06:00
Tiago Yamamoto
2b98552658 feat(dashboard): rewrite jobs/new with all backend fields and location autocomplete
- Add workMode, languageLevel, visaSupport, salaryNegotiable to form
- Add all 10 currency options and all 8 employment types (including dispatch/voluntary)
- Add status selector (draft/review/open/paused/closed)
- Add location autocomplete with country dropdown and city/region search
- Add application channel (email/url/phone) with conditional inputs
- Add resumeRequirement selector and requirements map in payload
- Load companies via adminCompaniesApi (no registration — user is already logged in)
- Extend CreateJobPayload type with workMode, cityId, regionId, languageLevel,
  visaSupport, requirements, expanded currency and status options

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:58:03 -06:00
Tiago Yamamoto
de3f497223 fix: resolve TypeScript build errors preventing Coolify deploy
- Fix nullable location in my-jobs search filter (job.location ?? '')
- Fix Locale type assertion in jobs/new description language select
- Fix nullable location in api.ts transformApiJobToFrontend

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:33:45 -06:00
Tiago Yamamoto
8fbb54c977 refactor job posting routes and add dashboard job creation page 2026-02-17 09:42:31 -03:00
Tiago Yamamoto
11e0deef2a fix: resolve build errors for Coolify deployment
- Frontend: Remove duplicate useState import in applications page
- Backoffice: Install devDependencies during build for nest CLI
- Seeder: Fix healthcheck port to match app port (8080)
- Add Coolify CI/CD workflow for automatic deployment on push to dev
- Update DEVOPS.md with Coolify environment documentation
2026-02-16 08:42:29 -06:00
Tiago Yamamoto
6fbd1f5ffc feat: implement full auth system with HTTPOnly cookies + JWT, fix migrations to UUID v7, remove mock data from frontend
Backend:
- Fix migrations 037-041 to use UUID v7 (uuid_generate_v7)
- Fix CORS defaults to include localhost:8963
- Fix FRONTEND_URL default to localhost:8963
- Update superadmin password hash with pepper
- Add PASSWORD_PEPPER environment variable

Frontend:
- Replace mockJobs with real API calls in home page
- Replace mockNotifications with notificationsApi in context
- Replace mockApplications with applicationsApi in dashboard
- Fix register/user page to call real registerCandidate API
- Fix hardcoded values in backoffice and messages pages

Auth:
- Support both HTTPOnly cookie and Bearer token authentication
- Login returns token + sets HTTPOnly cookie
- Logout clears HTTPOnly cookie
- Token valid for 24h
2026-02-16 05:20:46 -06:00
Tiago Yamamoto
49d761cad8 feat: unificar campos de register job em publicar vaga 2026-02-14 20:33:54 -03:00
GoHorse Deploy
5291f3f15d chore: database reset, frontend API configuration 2026-02-09 14:11:05 +00:00
eycksilva
ac6c0d0276 erro de commit corrigido 2026-01-21 12:39:04 -03:00
eycksilva
d916bee429 att layout 2026-01-21 12:33:57 -03:00
NANDO9322
8f331c97d3 feat(backoffice): Implementa gestão de credenciais e novas abas administrativas
BACKEND:
- Implementa [CredentialsHandler](cci:2://file:///C:/Projetos/gohorsejobs/backend/internal/api/handlers/credentials_handler.go:9:0-11:1) e rotas /api/v1/system/credentials para gestão segura de chaves.
- Adiciona criptografia RSA no [CredentialsService](cci:2://file:///C:/Projetos/gohorsejobs/backend/internal/services/credentials_service.go:17:0-22:1) para proteger chaves de API (Stripe, Cloudflare, etc).
- Automatiza geração de pares de chaves RSA no .env via script.

FRONTEND:
- Refatora /dashboard/backoffice organizando em Abas: Dashboard, Planos, Stripe e Sistema.
- Implementa CRUD completo para gestão de Planos (criar, editar, remover).
- Adiciona visualização de status do Stripe e botão para limpar cache Cloudflare.
- Ajusta formatação de data nos logs para fuso horário America/Sao_Paulo.
- Atualiza pi.ts para suportar novos endpoints de planos e credenciais.
2026-01-09 17:18:51 -03:00
NANDO9322
c339c3fbaf feat(backoffice): corrige erro 500 e implementa seeder de banco
- Remove marcadores de conflito git em admin_service que causavam erro 500 em ListCompanies.
- Implementa SeederService no backend Go com streaming SSE para logs em tempo real.
- Expõe endpoints: GET /api/v1/seeder/seed/stream e POST /api/v1/seeder/reset.
- Atualiza config do frontend para apontar URL do seeder para a API backend.
- Corrige erros de sintaxe na UI do dashboard Backoffice e implementa busca de estatísticas.
- Garante lógica correta de UPSERT no seeder (RETURNING id) usando colunas 'identifier' e 'full_name' para evitar abortar transações.
- Corrige constraint de role em user_companies no seeder para usar 'admin'.
2026-01-09 12:21:56 -03:00
NANDO9322
ad558bc656 feat: melhorias na gestão de empresas e correções de persistência
- Backend: Correção na persistência do email da empresa (CreateCompanyUseCase) e suporte a exclusão em cascata (Cascade Delete) para evitar erro 500.
- Backend: Adicionado suporte completo para Phone, Website, Address, Description e Slug na criação.
- Backend: Correção crítica no JobService para ocultar nome de candidatos na listagem de vagas.
- Frontend: Adição da coluna 'Email' na listagem de empresas e padronização dos ícones de ação.
- Frontend: Inclusão de novas chaves de tradução (i18n) e melhorias no modal de criação.
2026-01-08 17:14:41 -03:00
NANDO9322
23ff95f1a8 fix: correcao cloudflare 2026-01-08 10:07:14 -03:00
NANDO9322
a43e664a56 fix: correcao cloudflare 2026-01-06 20:31:32 -03:00
NANDO9322
ddc2f5dd03 feat: atualiza fluxo de cadastro de candidatos com persistência completa de dados e máscara de telefone
Frontend:
- Implementar máscara de entrada de telefone para números BR ((XX) XXXXX-XXXX).
- Atualizar formulário de cadastro para enviar dados completos do perfil do candidato (endereço, formação, habilidades, etc.).
- Corrigir problemas de idioma misto na página de Detalhes da Vaga e adicionar traduções faltantes.

Backend:
- Atualizar modelo de Usuário, Entidade e DTOs para incluir campos de perfil (Data de Nascimento, Endereço, Formação, etc.).
- Atualizar UserRepository para persistir e recuperar os dados estendidos do usuário no PostgreSQL.
- Atualizar RegisterCandidateUseCase para mapear campos de entrada para a entidade Usuário.
2026-01-06 18:19:47 -03:00
Yamamoto
1b9bd81687 feat(tickets): add pagination, skeleton loading, create modal, i18n support 2026-01-05 11:26:45 -03:00
Tiago Yamamoto
b1107864b5 Add payment gateway configs and lock credentials 2026-01-03 20:28:21 -03:00
Tiago Yamamoto
aeb57f325a Fix profile updates, avatar upload, and settings 2026-01-03 20:21:29 -03:00
Tiago Yamamoto
ce26de6225 Fix locale sync for post job and candidates 2026-01-03 19:57:09 -03:00
Tiago Yamamoto
f6c10e5332 Remove user ID from admin tickets table 2026-01-03 19:37:23 -03:00
Yamamoto
5155fa853d fix: Auth URL race, Seeder Reset 500, and UI confirmation modal
- auth.ts: await initConfig() before refreshSession to fix localhost fallback
- server.js: optional chaining req.body?.password for reset endpoint
- seeder/page.tsx: replace confirm() with elegant AlertDialog for reset
2026-01-03 14:21:29 -03:00
Yamamoto
621e4594c6 fix: resolve seeder connection, backoffice scroll and auth session refresh 2026-01-03 12:11:38 -03:00
Yamamoto
928997c9ce feat: enhance seeder ui, add logging stream and fix translations 2026-01-03 11:46:35 -03:00
Yamamoto
655f779b11 feat(dashboard): add seeder page for database seed/reset
- Add /dashboard/seeder page with Seed and Reset buttons
- Add Seeder item to sidebar (superadmin only)
- Use seeder API endpoints POST /seed and POST /reset
- Add confirmation dialogs for destructive actions
2026-01-03 10:16:34 -03:00
Yamamoto
3cd52accfb feat: infrastructure updates, storage verification, and superadmin reset
1. Auth: Implemented forced password reset for SuperAdmin and updated login logic.

2. Infra: Switched backend to internal Postgres and updated .drone.yml.

3. Storage: Added Test Connection endpoint and UI in Backoffice.

4. CI/CD: Updated Forgejo deploy pipeline to include Seeder and use Internal Registry.
2026-01-02 16:36:31 -03:00
Tiago Yamamoto
d79fa8e97a feat: increase test coverage backend/frontend and setup e2e 2026-01-01 10:54:58 -03:00
Tiago Yamamoto
18727f8c99 fix(frontend): remove duplicate credential handler functions in settings page 2025-12-31 17:21:54 -03:00
Tiago Yamamoto
895974878d refactor: move credentials to settings page and update sidebar 2025-12-31 16:44:29 -03:00
Tiago Yamamoto
2e7da0b28e feat: add backoffice credentials page and backend support 2025-12-31 16:13:27 -03:00
Tiago Yamamoto
c1ab5004bf chore: trigger frontend deploy 2025-12-31 13:39:35 -03:00
Tiago Yamamoto
33e7bbb334 feat(i18n): internationalize sidebar and dashboards 2025-12-31 13:20:04 -03:00
Tiago Yamamoto
3e81ae40e7 fix(frontend): add version marker (v2) to debug deployment 2025-12-31 12:08:32 -03:00
Tiago Yamamoto
3cb1db81c0 feat(frontend): i18n for admin users page 2025-12-31 11:47:15 -03:00
Tiago Yamamoto
a5bb7b2a31 feat: add backend tests to CI pipeline, improve responsive design, add unit tests
- Add test-backend job to .forgejo/workflows/deploy.yaml
- Fix JobService and TicketService tests
- Create ticket_service_test.go
- Create frontend unit tests (forgot-password, jobs/[id], dashboard/users)
- Improve responsiveness for users page, forgot-password, and apply page
2025-12-28 01:27:48 -03:00
Tiago Yamamoto
53d5b9822a fix: frontend build error in tickets page 2025-12-28 00:29:46 -03:00
Tiago Yamamoto
6a7759b039 refactor(frontend): replace mocks with real api integration in my-jobs 2025-12-27 23:40:35 -03:00
Tiago Yamamoto
a79743df33 feat(frontend): implement roadmap features - services link and boost job action 2025-12-27 23:25:16 -03:00
Tiago Yamamoto
8eeecf76d7 feat: admin tickets, dashboard i18n, user edit fix and location picker bugfix 2025-12-26 16:42:19 -03:00
Tiago Yamamoto
87aa558a61 fix: add null guards to messages page
- Guard against null response from chatApi.listConversations()
- Use fallback empty array for conversations state
- Prevents 'Cannot read properties of null' errors
2025-12-26 16:17:34 -03:00
Tiago Yamamoto
818edf2575 fix: Resolve type mismatch in settings page credentials fetch 2025-12-26 14:57:32 -03:00