sistema/painel/paginas/
tabelas: proteses, analise_capilar, simulacoes_protese, manutencoes_protese
IA: OpenAI via config.openai_key
Este documento foi montado com base no código real do BarberBot e no dump do banco. O objetivo é deixar o próximo dev confortável para: localizar arquivos, entender o fluxo completo do módulo, saber quais tabelas são impactadas, identificar dependências externas e não quebrar o ciclo prótese → análise → simulação → manutenção.
O conjunto de páginas de prótese capilar no BarberBot atende um fluxo específico do negócio: cadastro da prótese vinculada ao cliente, análise capilar com apoio de IA, simulação visual da aplicação e manutenção periódica com previsão de próxima visita e alerta automático.
sistema/painel/index.php?pag=protesessistema/painel/index.php?pag=analisessistema/painel/index.php?pag=simuladorsistema/painel/index.php?pag=manutencoes| Arquivo | Responsabilidade |
|---|---|
sistema/painel/paginas/proteses.php | Tela principal do CRUD de próteses (modal + listagem + busca). |
sistema/painel/paginas/analises.php | Tela principal da análise capilar, com preview e apoio à IA. |
sistema/painel/paginas/simulador.php | Tela principal da simulação visual, incluindo seleção de prótese por cliente. |
sistema/painel/paginas/manutencoes.php | Tela principal do histórico e agendamento de manutenção da prótese. |
cron/alerta_manutencao.php | Rotina automática para avisar clientes com manutenção vencida. |
protese.php | Página pública do tema prótese capilar no front do site. |
| Pasta / arquivo | Papel no fluxo |
|---|---|
sistema/painel/paginas/proteses/ | listar.php, salvar.php, excluir.php. |
sistema/painel/paginas/analises/ | listar.php, salvar.php, excluir.php, processar.php, buscar_protese.php. |
sistema/painel/paginas/simulador/ | listar.php, salvar.php, excluir.php, buscar.php, gerar_ia.php, canvas.php, salvar_canvas.php. |
sistema/painel/paginas/manutencoes/ | listar.php, salvar.php, excluir.php. |
sistema/painel/images/analises/ | Armazena fotos brutas da análise capilar. |
sistema/painel/images/simulacoes/ | Armazena foto original e imagem simulada/canvas. |
proteses.php, analises.php, simulador.php, manutencoes.php,
depois os respectivos listar.php/salvar.php e por fim o cron/alerta_manutencao.php.
Painel -> página principal do módulo
-> AJAX/POST para salvar/listar/processar
-> PDO / MySQL
-> imagens em /sistema/painel/images
-> retorno HTML ou JSON para o front
protesesid, cliente, modelo, cor, densidade, tamanho, observacoes, data_cad, usuario, fornecedor
analise_capilarid, cliente, foto, cor_detectada, densidade_detectada, grau_falha, sugestao_protese, observacoes, data_analise
simulacoes_proteseid, cliente, id_protese, foto_original, imagem_simulada, observacoes, data_simulacao
manutencoes_proteseid, id_protese, cliente, data_manutencao, tipo, produtos_utilizados, observacoes, proxima_manutencao, usuario,
alerta_manutencao_enviado, data_alerta_manutencao, tipo_pele, nivel_sudorese, clima, tipo_adesivo
proteses.cliente → clientes.id,
proteses.fornecedor → fornecedores.id,
analise_capilar.cliente → clientes.id,
simulacoes_protese.cliente → clientes.id,
simulacoes_protese.id_protese → proteses.id,
manutencoes_protese.cliente → clientes.id,
manutencoes_protese.id_protese → proteses.id.
sistema/painel/paginas/proteses.php — tela principal, modal e JS de listagem.sistema/painel/paginas/proteses/listar.php — tabela HTML com paginação e ações.sistema/painel/paginas/proteses/salvar.php — insert/update via PDO.sistema/painel/paginas/proteses/excluir.php — exclusão do registro.proteses.php
-> abrir modal
-> enviar formulário para proteses/salvar.php
-> recarregar listagem via proteses/listar.php
proteses/salvar.php grava data_cad,
mas não preenche o campo usuario, embora a tabela exija esse dado no schema.
sistema/painel/paginas/analises.php — tela com preview, ficha técnica e gatilho para IA.sistema/painel/paginas/analises/salvar.php — upload da foto e persistência do laudo.sistema/painel/paginas/analises/processar.php — envia imagem para IA e devolve JSON com diagnóstico.sistema/painel/paginas/analises/buscar_protese.php — busca a prótese mais recente do cliente para pré-preencher dados.sistema/painel/paginas/analises/listar.php — listagem do histórico.{
"cor_detectada": "...",
"densidade_detectada": "...",
"grau_falha": "...",
"sugestao_protese": "...",
"observacoes": "..."
}
O processamento usa config.openai_key e faz chamada HTTP para
https://api.openai.com/v1/responses com imagem em base64.
buscar_protese.php tenta localizar a última prótese do cliente
para sugerir modelo, cor, densidade, tamanho e observacoes.
sistema/painel/paginas/simulador.php — tela principal da simulação.sistema/painel/paginas/simulador/salvar.php — upload da foto original e imagem simulada manual.sistema/painel/paginas/simulador/gerar_ia.php — usa IA para editar a foto original com base nos dados da prótese.sistema/painel/paginas/simulador/canvas.php — editor visual para ajuste fino.sistema/painel/paginas/simulador/salvar_canvas.php — persiste a imagem final em PNG base64.sistema/painel/paginas/simulador/buscar.php — devolve paths de imagem para preview.sistema/painel/paginas/simulador/listar.php — listagem do histórico de simulações.Selecionar cliente
-> carregar próteses do cliente
-> enviar foto original
-> gerar imagem simulada (manual / IA / canvas)
-> salvar em simulacoes_protese
sistema/painel/images/simulacoes/ precisa existir e ser gravável.gerar_ia.php depende de config.openai_key.canvas.php usa a própria foto original como base para ajuste fino.simulador/gerar_ia.php monta consulta com
interpolação direta do $id na cláusula WHERE. Em manutenção futura, prefira prepare() + bind.
sistema/painel/paginas/manutencoes.php — tela principal com formulário e histórico.sistema/painel/paginas/manutencoes/salvar.php — grava a manutenção e calcula a próxima data.sistema/painel/paginas/manutencoes/listar.php — lista histórico e marca status visual.sistema/painel/paginas/manutencoes/excluir.php — exclui registro.cron/alerta_manutencao.php — envia alerta para clientes vencidos.
Quando proxima_manutencao vem vazia, o sistema calcula automaticamente com base em:
tipo_pele, nivel_sudorese, clima e tipo_adesivo.
base = 15 dias
ajustes por pele / sudorese / clima / adesivo
limite mínimo = 5 dias
resultado = data_manutencao + dias calculados
listar.php mostra badge visual para vencida, vence hoje ou em dia.alerta_manutencao.php procura registros vencidos e usa ajax/api-texto.php para disparo WhatsApp.alerta_manutencao_enviado e data_alerta_manutencao.proteses, o schema possui usuario em
manutencoes_protese. Quem alterar o fluxo deve conferir se o usuário logado está sendo persistido corretamente.
../conexao.php / ../../../conexao.php em praticamente todos os endpoints.verificar.php para acesso ao painel.verificar-permissoes.php para liberar proteses, analises, simulador, manutencoes.config para chave da IA.ajax/api-texto.php para alertas de manutenção.analises e simulacoes precisam existir, ser legíveis e graváveis.openai_key estiver ausente, análise e geração de imagem falham.alerta_manutencao.php, conferir ajax/api-texto.php.verificar-permissoes.php e a tabela de acessos/permissões.gerar_ia.php.proteses, analise_capilar, simulacoes_protese ou manutencoes_protese.config.openai_key.alerta_manutencao.php.