- 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.
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.
- 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
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.
- Guard against null response from chatApi.listConversations()
- Use fallback empty array for conversations state
- Prevents 'Cannot read properties of null' errors
Backend:
- Added GET /api/v1/system/credentials to list configured services
- Added DELETE /api/v1/system/credentials/{service}
- Updated CredentialsService to support listing without revealing secrets
Frontend:
- Updated Settings page with Tabs
- Added 'Integrations' tab to manage credentials
- Allows Configuring (Update) and Deleting credentials
- Lists status of Appwrite, Stripe, Firebase, etc.
When Appwrite is not configured:
- Shows friendly 'Service not configured' message
- Displays icon and helpful description
- Links to dashboard and settings
- Shows technical details in collapsible section
- Prevents client-side crash
- Added formatDescription helper to parse JSON and display as formatted list
- Shows tagline, stores, employees, motto etc as labeled fields
- Falls back to plain text if not JSON
- Added modal dialog to view company details when clicking eye icon
- Fixed createdAt field name (was created_at, Go returns camelCase)
- Expanded AdminCompany type to include all company fields
- Modal shows: status badges, contact info, description, timestamps
- Added update() and delete() methods to jobsApi in api.ts
- Fixed handleDeleteJob to call jobsApi.delete() instead of just local state
- Fixed handleSaveEdit to call jobsApi.update() instead of being commented out
- Added console logging to all CRUD operations for debugging
- Replaced 6-step wizard (673 lines) with single-page form (290 lines)
- Removed billing/payment steps for now
- All fields visible with clear section headers
- Save as Draft and Publish buttons
- handleDeleteJob: compare string IDs directly instead of parseInt
- handleSaveEdit: use string ID for future update logic
- IDs are now UUIDs (strings) after migration