Contexto
A página de perfil do profissional (/scheduling/professional-profile) usa um objeto mock hardcoded com dados extensos (rating, reviews, services, packages, Q&A, payment methods). O endpoint GET /search/professional/:id existe mas retorna apenas dados básicos: _id, name, imageUrl, professionalSpecialties, professionalServicePreferences, clinic, location. Parte da migração descrita em #63.
Há também um mismatch de rota: os cards linkam pra /profissional/${id} mas a página está em /scheduling/professional-profile.
Decisão de design
Migrar o que a API já suporta (dados básicos do profissional) e deixar as seções que dependem de dados inexistentes no backend (reviews, packages, Q&A) com estado vazio ou placeholder. Isso é melhor que manter o mock inteiro — pelo menos nome, foto, especialidades e localização serão reais.
A rota precisa receber o ID como parâmetro dinâmico (/profissional/[id]/page.tsx).
O que fazer
- Criar rota dinâmica
/profissional/[id]/page.tsx (ou ajustar a existente)
- Substituir import de
mock.ts por chamada a GET /search/professional/:id (Kubb: getSearchProfessionalId)
- Renderizar dados reais: nome, foto, especialidades, serviços, clínica, localização
- Seções sem dados na API (reviews, packages, Q&A, payment methods) → mostrar estado vazio ou ocultar
- Corrigir links nos
ProfessionalCard pra apontar pra rota correta
- Remover
mock.ts
Fora de escopo
- Implementar rating/reviews no backend
- Implementar serviços/packages no backend
- Implementar Q&A
- Agendamento direto do perfil
Comportamento esperado
- Ao clicar num card de profissional, abre o perfil com dados reais da API
- Nome, foto, especialidades, serviços e localização vêm da API
- Seções sem dados mostram estado vazio ("Nenhum review ainda", etc.)
- URL reflete o ID do profissional
Critérios de aceite
Arquivos relevantes
src/app/(public)/scheduling/professional-profile/page.tsx
src/app/(public)/scheduling/professional-profile/mock.ts
src/kubb/hooks/useGetSearchProfessionalId.ts
src/features/home/components/ProfessionalCard.tsx (links)
Parte de #63.
Contexto
A página de perfil do profissional (
/scheduling/professional-profile) usa um objetomockhardcoded com dados extensos (rating, reviews, services, packages, Q&A, payment methods). O endpointGET /search/professional/:idexiste mas retorna apenas dados básicos:_id,name,imageUrl,professionalSpecialties,professionalServicePreferences,clinic,location. Parte da migração descrita em #63.Há também um mismatch de rota: os cards linkam pra
/profissional/${id}mas a página está em/scheduling/professional-profile.Decisão de design
Migrar o que a API já suporta (dados básicos do profissional) e deixar as seções que dependem de dados inexistentes no backend (reviews, packages, Q&A) com estado vazio ou placeholder. Isso é melhor que manter o mock inteiro — pelo menos nome, foto, especialidades e localização serão reais.
A rota precisa receber o ID como parâmetro dinâmico (
/profissional/[id]/page.tsx).O que fazer
/profissional/[id]/page.tsx(ou ajustar a existente)mock.tspor chamada aGET /search/professional/:id(Kubb:getSearchProfessionalId)ProfessionalCardpra apontar pra rota corretamock.tsFora de escopo
Comportamento esperado
Critérios de aceite
Arquivos relevantes
src/app/(public)/scheduling/professional-profile/page.tsxsrc/app/(public)/scheduling/professional-profile/mock.tssrc/kubb/hooks/useGetSearchProfessionalId.tssrc/features/home/components/ProfessionalCard.tsx(links)Parte de #63.