# 2026-04-16 - Busca publica de profissionais e estabelecimentos por contratos

Reestruturamos a busca da area do cliente para funcionar com o modelo atual por contratos, cobrindo profissionais, sugestoes e estabelecimentos mesmo quando a base ja nao depende mais das tabelas legadas de parceiros por empresa e unidade.

## O que mudou

- corrigimos a tela `buscar-profissional` para exibir sugestoes, reagir a clique nas sugestoes e buscar em tempo real enquanto o usuario digita
- ajustamos o clique do card de resultado do profissional para redirecionar para `/cliente/resultado-profissional`, preservando o fluxo publico esperado dessa jornada
- alinhamos o clique do profissional dentro do perfil do estabelecimento para a mesma rota `/cliente/resultado-profissional`, evitando quebra de jornada entre listagem e detalhe
- ajustamos a experiencia da busca para mostrar estado vazio quando nenhum profissional ou estabelecimento for encontrado, em vez de ficar silenciosa
- passamos a levar o termo digitado da aba de empresas para `buscar-estabelecimento`, preservando o contexto da pesquisa
- corrigimos o fluxo da busca de profissionais para usar a funcao de normalizacao correta e renderizar o resultado retornado pelo locator
- adaptamos a listagem e o perfil de estabelecimentos para ler `EMPRESA` e `UNIDADE` diretamente de `contratos` quando as tabelas legadas nao estiverem mais disponiveis
- mantivemos `parceiros_empresas` apenas como enriquecimento opcional, sem depender dela como fonte unica do catalogo publico
- alinhamos categorias, profissoes, especialidades e sugestoes para cair no contrato ancestral quando o contrato atual nao tiver catalogo proprio
- passamos a resolver o nome do estabelecimento do profissional tambem por `contratos`, evitando resultado sem empresa quando o legado nao existir
- removemos o acoplamento pratico da busca publica ao contrato `57`:
  - sem termo, a busca continua respeitando o contexto atual
  - com termo (`q`), a busca expande o escopo para os contratos pesquisaveis do catalogo, permitindo localizar empresas e unidades fora da arvore imediata do contrato ativo
- corrigimos o hotfix do endpoint `establishments_search` para ler o termo de busca antes de montar o escopo pesquisavel, evitando erro 500 por variavel indefinida no caminho publico

## Impacto

- a area do cliente volta a mostrar sugestoes e resultados de forma coerente enquanto a pessoa digita
- a busca de estabelecimentos deixa de falhar em bases onde empresa e unidade ja moram em `contratos`
- contratos como `Empresa Alpha` e suas unidades deixam de depender da arvore do contrato atual para serem encontrados por nome
- a experiencia publica fica mais resiliente durante a migracao do legado de parceiros para tenancy por contratos

## Arquivos alterados

- `pages/cliente/buscar-profissional.php`
- `pages/cliente/buscar-estabelecimento.php`
- `src/Modules/Finance/Booking/Http/BookingController.php`
- `src/Modules/Partners/Http/PartnersController.php`
- `src/Modules/Partners/Http/PartnersEstablishmentsController.php`
- `src/Modules/Partners/Http/PartnersLocatorController.php`
