Skip to content

Integração: migrar Perfil do Profissional para API real #213

Description

@tarcisiopgs

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

  1. Ao clicar num card de profissional, abre o perfil com dados reais da API
  2. Nome, foto, especialidades, serviços e localização vêm da API
  3. Seções sem dados mostram estado vazio ("Nenhum review ainda", etc.)
  4. URL reflete o ID do profissional

Critérios de aceite

  • Rota dinâmica com ID funciona
  • Dados básicos vêm da API real
  • Mock removido
  • Links dos cards apontam pra rota correta
  • Seções sem dados têm fallback visual adequado

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.

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