Skip to content

Integração: migrar Search para API real (filtros e resultados) #210

Description

@tarcisiopgs

Contexto

A página de busca (/search) usa useFilterProfessional() que busca de /mocks/professional.json — os mesmos dados estáticos da Home. Os filtros (especialidade, serviço) não vão pra API nenhuma. O endpoint GET /search/professionals?specialty=&service=&accessibility=&page= já existe no backend e o hook Kubb useGetSearchProfessionals está gerado. Parte da migração descrita em #63.

Decisão de design

Substituir useFilterProfessional() pra chamar a API real passando os filtros como query params. O FilterDialogDesktop e FilterPanelMobile já coletam os filtros — só falta passá-los pro hook. O adapter de shape do ProfessionalCard será o mesmo criado na issue da Home (#209).

A lista de especialidades nos filtros ainda vem de specializationOptions hardcoded — isso será resolvido na issue de especialidades separada.

O que fazer

  • Substituir useFilterProfessional() por hook que chama GET /search/professionals com params de filtro
  • Usar o Kubb getSearchProfessionals({ specialty, service, accessibility, page })
  • Reutilizar adapter toProfessionalCardProps() criado na issue da Home
  • Conectar searchBar ao GET /search/searchBar/:terms pra busca por texto
  • Implementar paginação real nos resultados

Fora de escopo

Comportamento esperado

  1. Ao buscar, resultados vêm da API real
  2. Filtros de especialidade e serviço são enviados como query params
  3. Paginação funciona (próxima página carrega novos resultados)
  4. Busca por texto funciona via search bar

Critérios de aceite

  • Resultados de busca vêm da API real
  • Filtros de especialidade e serviço funcionam contra a API
  • Paginação funciona
  • Busca por texto funciona
  • Loading state durante busca

Arquivos relevantes

  • src/features/search/hooks/useFilterProfessional.ts
  • src/app/(public)/search/page.tsx
  • src/kubb/hooks/useGetSearchProfessionals.ts
  • src/kubb/hooks/useGetSearchSearchbarTerms.ts

Parte de #63. Depende de #209 (adapter de shape).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions