# Continuidade — DGestor Padaria Atualizado em 07/10/2026. Este documento registra o estado real para retomada em outro chat. O escopo está em `ESPECIFICACAO_DGESTOR_PADARIA.md`; o histórico está em `PROGRESSO.md`. Não considerar o sistema completo ou pronto para produção. ## Pedido e cenário do usuário Deivid autorizou desenvolver e testar o sistema em `C:\wamp64\www\Dgestor_padaria`, aproveitando o conceito do DGestor PDV. O foco é comércio presencial: padaria com caixa, balcões, balança para pão, salgados e uma lanchonete interna. Não priorizar delivery. O cliente recebe um cartão físico numerado (código de barras/QR), os balconistas lançam consumo na mesma comanda e o caixa lê o cartão, recebe o pagamento e libera o cartão. A comanda pode começar no balcão ou no caixa. O sistema também deve ter uso web/celular, serviço local para continuar durante falha de internet e sincronização quando a conexão voltar. O usuário está avaliando as telas na própria máquina e pode solicitar mudanças. **Preservar suas vendas, comandas e cadastros.** O pedido mais recente foi preparar este documento para continuar em outro chat. ## Regras essenciais - Ler `AGENTS.md`, a especificação completa e `PROGRESSO.md` antes de alterar código. - Trabalhar exclusivamente na pasta deste projeto. Não acessar/modificar outros sistemas em `C:\wamp64\www`. - Não publicar, usar FTP, credenciais de clientes ou emitir documentos fiscais em produção. - Seguir as fases da especificação em ordem; registrar decisões, testes e commits em português. - No banco de avaliação `dgestor_padaria`, usar somente migrations incrementais. **Não executar migrate:fresh nele.** Validar instalação limpa apenas no banco dedicado `dgestor_padaria_test`, conferindo explicitamente a configuração antes de apagar tabelas. - Não sobrescrever nem descartar alterações não commitadas da fase 3. Elas são trabalho legítimo em andamento. ## Execução local - Windows/Wamp, PHP 8.3: `C:\wamp64\bin\php\php8.3.0\php.exe` (PHP não está no PATH). - Laravel 12.69.3, Livewire 3.8.10, Alpine, Tailwind 3, Vite 6, MySQL 8.2. - A especificação original dizia Laravel 11. Foi adotado Laravel 12 por bloqueio de segurança das dependências antigas; decisão registrada no progresso. Não desativar auditoria de segurança. - Banco local: `dgestor_padaria`; configuração de conexão fica no `.env`. Engine InnoDB configurado somente no projeto. - Endereço: http://127.0.0.1:8090 . Rotas úteis: `/caixa`, `/balcoes`, `/cartoes`, `/balanca`, `/cadastros/produtos`. - Usuário de demonstração: `administrador`; senha: `123456`. Há também gerente, caixa, balconista, producao e cozinha, com a mesma senha de demonstração. - Iniciar Wamp/MySQL e abrir `INICIAR_TESTE.cmd` na raiz do projeto. Ele executa `scripts/iniciar_local.ps1`, inicia PHP em janela oculta se necessário e abre o navegador. - Servidor PHP usa `public` como diretório de trabalho e o router do Laravel; logs em `work/server.log` e `work/server-error.log`. Não encerrar processos de outros sistemas. - Composer local: `work/composer.phar`; npm via `npm.cmd`. Assets em `public/build` são versionados para hospedagem sem Node. Comandos PowerShell, executados na raiz do projeto: ```powershell & 'C:\wamp64\bin\php\php8.3.0\php.exe' artisan migrate --force & 'C:\wamp64\bin\php\php8.3.0\php.exe' artisan test & 'C:\wamp64\bin\php\php8.3.0\php.exe' artisan view:cache npm.cmd run build ``` ## Implementado e validado **Fundação:** login, perfis/permissões, licenciamento e SSO com validação de assinatura/expiração/reuso, auditoria, instalador com trava, backup SQL e atualização administrativa, layouts e componentes. **Cadastros:** empresa, filiais, equipe, produtos por peso/unidade, categorias, clientes, fornecedores e pagamentos; importação CSV com prévia/erros, exportação; seeder fictício Padaria Pão Dourado com 60 produtos de venda e 10 insumos. **Caixa:** abertura/fechamento, venda direta, peso manual, pagamentos mistos, troco, desconto, fiado com limite, sangria/suprimento, cancelamento, cupom não fiscal, movimentos de estoque e eventos locais. Dinheiro calculado no servidor com BCMath/centavos; transações e UUIDs nos fluxos operacionais. Última execução: **29 testes passaram, 165 asserções**, em SQLite em memória (`FundacaoTest`, `CadastrosTest`, `CaixaTest`). Migrations locais sem pendências e views compiladas. Isso não valida concorrência MySQL nem todos os recursos novos da fase 3. Já houve venda de demonstração pelo navegador: coxinha R$ 7, recebido R$ 10, troco R$ 3. Pode haver outros dados criados pelo usuário; preservá-los. ## Fase 3 em andamento — ainda não concluída Existem alterações **não commitadas** de balcões/cartões/balança: - Migration `2026_10_07_000005_create_balcoes_cartoes.php`: balcões, vínculos de categorias/operadores, cartões, configurações e vínculos operacionais. - Models `Balcao`/`Cartao`; services `BalcaoService`, `CartaoService`, `CodigoGraficoService`; decoder `app/Support/CodigoLido.php`. - Controllers/requests e views para balcões, geração/impressão de cartões, identificação por QR, status do cartão, balança e teste de etiquetas. - Código de barras Code128 via Picqer; QR via BaconQrCode. Composer/lock foram alterados. - Seeder com quatro balcões e 100 cartões; código exemplo `CMD01-0001`. - Tela de balcão reutiliza grid de produtos e script do caixa; leitura de cartão/etiqueta, lançamento vinculado ao balcão e retorno por inatividade. - Serviços incluem transferência de item, cartão perdido com taxa e recebimento de várias comandas no backend; interfaces desses fluxos ainda precisam de revisão. Não há suíte específica de testes da fase 3. Não marcar concluída antes de validar critérios da especificação e o fluxo completo no navegador. ## Próximos passos recomendados 1. Conferir `git status` e ler as alterações existentes. Adicionar testes para cartões compartilhados entre balcões, permissões/categorias, liberação após pagamento, transferência, cartão perdido e etiquetas de peso/valor com dígito verificador. 2. Revisar interface do balcão: textos herdados de venda direta/caixa, confirmação de leitura duplicada e configuração do prefixo de balança (o script ainda identifica prefixo 2 diretamente). 3. Concluir interface de juntar comandas e transferência; backend sozinho não atende toda a experiência. 4. Rever concorrência/idempotência em `CaixaService`: checagem do UUID de recebimento/movimento também após adquirir lock do caixa; cancelamento deve bloquear o caixa e estornar com base no movimento de estoque original, mesmo se a configuração do produto mudou. 5. Rever cartão perdido: fechamento não deve disponibilizar inadvertidamente um cartão marcado como perdido. 6. Validar MySQL/concorrência em banco exclusivo de teste; preservar o banco do usuário. Fazer smoke test em aba separada, sem interferir na avaliação aberta. 7. Atualizar progresso e fazer commit da fase 3 após validação. Seguir fase 4 (cozinha/impressão) e as demais em ordem. ## Limitações que precisam ficar explícitas - **Sincronização local/nuvem não implementada.** Existe outbox transacional, mas não transporte/reconciliação/inbox completa. Ler `docs/OPERACAO_LOCAL_E_SINCRONIZACAO.md`. Rodar localmente não comprova contingência sincronizada. - Comandas compartilhadas exigem serviço/banco local comum na filial durante queda de internet; PWA isolada em cada aparelho não resolve esse cenário. - `127.0.0.1` serve apenas a própria máquina. Acesso pelo celular e QR em rede local exigem endereço de rede/configuração apropriados; não prometer que os QR atuais funcionarão no celular. - Pix confirmado manualmente; BR Code estático pendente. Cupom não fiscal; NFC-e ainda não implementada. - Cancelamento de venda restrito ao caixa original aberto. Estorno após fechamento depende do financeiro. - Painel inicial ainda contém indicadores provisórios; relatórios completos ficam em fase posterior. - Cozinha, estoque completo, produção/fichas, encomendas, financeiro completo, fiscal, relatórios e acabamento/PWA ainda não entregues integralmente. - Personalização visual, importação XLSX e alguns refinamentos continuam pendentes conforme progresso. ## Texto para iniciar o outro chat > Continue o desenvolvimento do DGestor Padaria em C:\wamp64\www\Dgestor_padaria. Leia AGENTS.md, ESPECIFICACAO_DGESTOR_PADARIA.md, PROGRESSO.md e CONTINUIDADE_OUTRO_CHAT.md. Preserve o banco dgestor_padaria e todas as alterações em andamento. Fundação, cadastros e caixa têm 29 testes passando; a fase 3 de balcões/cartões/balança está parcialmente implementada e precisa de testes e revisão antes de concluir. Estou avaliando em http://127.0.0.1:8090. O foco é comércio presencial, cartão compartilhado entre balcões e caixa, com serviço local e sincronização futura. Retome de onde parou, sem recomeçar ou publicar no servidor.