# Sincronizacao de Medicamentos

## Rota

- `/adm/catalogo-medicamentos-sync`

## O que e

Tela operacional para transformar medicamentos do repositório em itens do catálogo, com opção de complementar o item com dados de preço regulado da base CMED.

## Para que serve

- preparar a estrutura mínima do tipo `medicamento` no catálogo;
- criar o grupo de campos e os campos dinâmicos recomendados para medicamentos;
- acompanhar o volume já sincronizado versus o que ainda está pendente;
- rodar varreduras em lote para criar ou atualizar itens do catálogo;
- testar o fluxo com `dry run` antes de gravar de fato.

## Blocos principais

- KPIs com total do repositório, sincronizados, pendentes e itens com CMED;
- bloco de estrutura para bootstrap do tipo, grupo e campos;
- bloco de varredura com parâmetros de lote;
- console simples com o resultado item a item.

## Acoes da tela

- `Preparar estrutura`: garante o tipo `medicamento`, o grupo de campos e os campos dinâmicos recomendados;
- `Atualizar métricas`: recarrega os totais da operação;
- `Rodar sincronização`: executa a varredura no lote informado.

## Parametros da varredura

- `Limite`: quantidade de medicamentos processados por lote;
- `Offset`: deslocamento para continuação manual da varredura;
- `Só novos`: ignora itens já materializados no catálogo;
- `Combinar CMED`: tenta enriquecer com a base de preços regulados;
- `Dry run`: simula a operação sem gravar.

## Observacoes

- o vínculo com o catálogo usa `referencia_externa` no formato `repo_medicamento:{id}`;
- o serviço salva também um snapshot em `atributos_json` para permitir detecção de mudanças;
- os campos dinâmicos de medicamento são gravados por `slug`, então a estrutura pode evoluir sem mudar o fluxo principal;
- existe suporte complementar por CLI em `tools/sincronizar_catalogo_medicamentos.php`.
