Usa a foto original da simulação, aplica prompt técnico travado e grava `imagem_simulada`.
simulador.php -> submit #form_simulador -> paginas/simulador/salvar.php simulador.php -> gerarIAmodal() -> paginas/simulador/gerar_ia.php gerar_ia.php -> tabela config (openai_key) -> OpenAI Images API sucesso -> simulador.php -> paginas/simulador/buscar.php -> atualização do modal
| Arquivo | Papel dentro do fluxo |
|---|---|
sistema/painel/paginas/simulador.php | Tela, modal, ações de IA, canvas e WhatsApp. |
sistema/painel/paginas/simulador/salvar.php | Cadastro base com foto original e dados da simulação. |
sistema/painel/paginas/simulador/gerar_ia.php | Lê a foto, monta prompt, chama OpenAI e salva PNG gerado. |
sistema/painel/paginas/simulador/buscar.php | Retorna JSON com `foto_original` e `imagem_simulada` para atualizar a UI. |
| Etapa | O que acontece |
|---|---|
| 1. Cadastro base | O profissional salva a simulação em `salvar.php`, vinculando cliente, prótese e foto original. |
| 2. Pré-condição | `gerarIAmodal()` exige `id` salvo; sem isso o botão só mostra mensagem de erro no modal. |
| 3. Chamada AJAX | O clique em “Gerar com IA” envia `id` para `paginas/simulador/gerar_ia.php`. |
| 4. Contexto técnico | `gerar_ia.php` carrega cliente e prótese para obter `modelo`, `cor`, `densidade`, `tamanho` e `observacoes`. |
| 5. Prompt travado | O backend monta um prompt duro: manter rosto, barba, fundo e obedecer exatamente à prótese definida no sistema. |
| 6. Chamada externa | O script usa cURL e a chave da tabela `config` para falar com a API de geração/edição de imagem da OpenAI. |
| 7. Persistência da imagem | A resposta retorna em base64, vira arquivo PNG em `images/simulacoes/` e substitui a imagem simulada anterior se existir. |
| 8. Atualização da UI | Após sucesso textual, o frontend chama `listarSimulacoes()` e em seguida `buscar.php` para preencher `foto_original_atual` e `imagem_simulada_atual`. |
| 9. Pós-uso | Com a imagem simulada salva, o usuário pode abrir o canvas para ajuste fino ou enviar o resultado por WhatsApp. |
| Entrada | Origem/uso |
|---|---|
id | ID da simulação |
foto_original | Arquivo da base real do cliente |
modelo/cor/densidade/tamanho | Lidos da prótese associada |
openai_key | Lida da tabela `config` |
| Saída | Destino |
|---|---|
Arquivo PNG | Imagem final em `images/simulacoes/` |
Banco | Campo `imagem_simulada` atualizado em `simulacoes_protese` |
JSON secundário | `buscar.php` devolve nomes dos arquivos para a interface |
Use estes links quando já souber qual arquivo do fluxo precisa ser alterado e quiser leitura minuciosa do código.