Mapa 5 — Integrações externas e recursos de apoio

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.

OpenAI Pastas de imagens Cron / WhatsApp Dependências de ambiente

Diagrama das integrações

Arquivos do BarberBot analises/processar.php simulador/gerar_ia.php simulador/salvar_canvas.php cron/alerta_manutencao.php sistema/conexao.php Recursos locais config (openai_key, url_sistema) /images/analises /images/simulacoes ajax/api-texto.php Serviços externos OpenAI /v1/responses Interpretação estruturada da foto da análise OpenAI /v1/images/edits Geração da imagem simulada com prótese Canal de WhatsApp / texto Destino do alerta de manutenção vencida

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.

Mapa de dependências por integração

IntegraçãoArquivo que chamaPré-requisitoResultado esperado
OpenAI /v1/responsesanalises/processar.phpopenai_key em config + imagem válida em /images/analisesJSON interpretado com cor, densidade, grau de falha e sugestão de prótese.
OpenAI /v1/images/editssimulador/gerar_ia.phpopenai_key em config + foto original válida em /images/simulacoesImagem gerada e persistida em imagem_simulada.
Editor canvassimulador/canvas.php + salvar_canvas.phpImagem carregada no editor e pasta de simulações gravávelNovo PNG salvo em disco e referência atualizada no banco.
Alerta WhatsApp/textocron/alerta_manutencao.phpajax/api-texto.php, telefone do cliente e url_sistemaEnvio do alerta e update de alerta_manutencao_enviado.

Checklist de ambiente para produção

ItemPor que importa
config.openai_keySem isso, análise IA e simulador param completamente.
Permissão de leitura em /images/analisesO arquivo da foto precisa ser lido antes de ir para a IA.
Permissão de leitura/escrita em /images/simulacoesSimulador precisa ler a foto original, salvar a versão gerada e eventualmente sobrescrever o resultado do canvas.
ajax/api-texto.php acessívelSem esse arquivo, o cron encontra manutenções vencidas mas não envia o alerta.
url_sistema coerente em produçãoO link enviado ao cliente para agendamento depende desse valor.
Ponto crítico de manutenção: quando o bug só acontece em produção, a primeira hipótese deve ser ambiente, não lógica. Neste módulo, permissões de pasta, chaves de API e caminhos absolutos são tão importantes quanto o PHP.