Este mapa mostra tudo o que está fora do CRUD puro: APIs da OpenAI, diretórios de imagens, dependências de configuração, cron e mecanismo de envio de alerta. É a camada mais importante quando o erro “parece aleatório”, depende de ambiente ou só acontece em produção.
O módulo depende fortemente de ambiente. Mesmo quando o PHP e o SQL estão corretos, falta de chave, pasta sem permissão ou retorno inesperado da API externa podem fazer o fluxo falhar.
| Integração | Arquivo que chama | Pré-requisito | Resultado esperado |
|---|---|---|---|
OpenAI /v1/responses | analises/processar.php | openai_key em config + imagem válida em /images/analises | JSON interpretado com cor, densidade, grau de falha e sugestão de prótese. |
OpenAI /v1/images/edits | simulador/gerar_ia.php | openai_key em config + foto original válida em /images/simulacoes | Imagem gerada e persistida em imagem_simulada. |
| Editor canvas | simulador/canvas.php + salvar_canvas.php | Imagem carregada no editor e pasta de simulações gravável | Novo PNG salvo em disco e referência atualizada no banco. |
| Alerta WhatsApp/texto | cron/alerta_manutencao.php | ajax/api-texto.php, telefone do cliente e url_sistema | Envio do alerta e update de alerta_manutencao_enviado. |
| Item | Por que importa |
|---|---|
config.openai_key | Sem isso, análise IA e simulador param completamente. |
Permissão de leitura em /images/analises | O arquivo da foto precisa ser lido antes de ir para a IA. |
Permissão de leitura/escrita em /images/simulacoes | Simulador precisa ler a foto original, salvar a versão gerada e eventualmente sobrescrever o resultado do canvas. |
ajax/api-texto.php acessível | Sem esse arquivo, o cron encontra manutenções vencidas mas não envia o alerta. |
url_sistema coerente em produção | O link enviado ao cliente para agendamento depende desse valor. |