Histórico de Versões
Acompanhe a evolução do Busca Lá SaaS.
# Histórico de Versões (Changelog)
Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
## [v1.23.0] - 2026-05-31
### Adicionado
- **Redesign Completo — Módulo Financeiro:** A página `/financeiro` foi totalmente reformulada seguindo a nova identidade visual moderna com Tailwind CSS e Alpine.js.
- **Card Principal "Próximo Vencimento":** Destaque em gradiente roxo/índigo para a fatura pendente com menor data de vencimento, com botão de pagamento integrado.
- **Resumo de Métricas (Stats Cards):** Inclusão de três cards visuais com ícones para acesso rápido aos totais de "Pendentes", "Pagas" e "Total em aberto".
- **Filtros com Abas Interativas:** Navegação inteligente via Alpine.js para alternar instantaneamente entre faturas "Todas", "Pendentes", "Pagas" e "Canceladas", sem recarregar a página.
- **Visual em Cards (Listagem):** A antiga tabela de boletos foi substituída por listas de cards estéticos e responsivos, facilitando a visualização em dispositivos móveis.
## [v1.22.0] - 2026-05-30
### Adicionado
- **Rastreabilidade de Entregas:** Adicionado suporte nativo no banco de dados (`porteiro_id` na tabela `retirada_encomenda`) para registrar qual porteiro/usuário realizou a baixa de uma encomenda. A tela de recibo (`/encomendas/show`) agora exibe claramente "Entregue por: [Nome do Porteiro]".
- **Leitura Ágil de PIN:** Redesign da interface de "Processar Retirada". As abas foram removidas em favor de um layout unificado contendo o campo de PIN diretamente integrado a um botão de "QR Code" lateral, melhorando drasticamente a usabilidade na portaria.
### Modificado
- **Interface de Detalhes da Encomenda:** Nova UI em formato de "Cards" com design premium, ícones contextuais e organização visual muito mais clara para dados do pacote, destinatário e comprovante de retirada.
- **Destinatários Dinâmicos:** Quando uma encomenda é registrada para "Todos os moradores" de uma unidade, o sistema agora lista visualmente os nomes reais de todos os moradores notificados, ao invés de exibir apenas um texto genérico.
- **Navegação de Retorno:** A seta de voltar na tela de retirada agora redireciona corretamente para a listagem principal de `/encomendas`, e links redundantes de "Cancelar" e "Voltar" foram limpos das interfaces de processo.
### Corrigido
- **Perfil Fixo no Cabeçalho:** Corrigido bug visual onde o cabeçalho superior do sistema exibia a string "Porteiro:" de forma fixa (hardcoded) para todos os usuários, independentemente de serem Administradores ou Moradores. O sistema agora lê a sessão e exibe o perfil correto dinamicamente.
- **Layout Duplicado:** Limpeza de código residual HTML que duplicava o campo de "Transportadora" e exibia ícones incorretos na conferência da encomenda.
## [v1.21.2] - 2026-05-28
### Adicionado
- **Visão Unificada de Encomendas (Aguardando Retirada):** O sino de notificação agora direciona para uma visão inteligente de encomendas (`?tab=aguardando`) que exibe, na mesma lista, encomendas recentes e atrasadas, mantendo ambas as abas destacadas visualmente.
- **Legenda Visual Dinâmica no Histórico:** Adicionada legenda "Lido" na tela de histórico de mensagens, substituindo dinamicamente o ícone de mensagem nova quando o recado é acessado.
### Modificado
- **Contador do Sino Dinâmico:** O contador do sino de encomendas no cabeçalho passou a ler os dados da tabela de encomendas (e não do log de notificações), subtraindo automaticamente a quantidade em tempo real assim que a portaria dá a baixa.
- **Ordenação Inteligente de Encomendas:** Ajustada a ordem visual na listagem de encomendas. Agora, em qualquer filtro, o sistema prioriza: Atrasadas > Pendentes > Entregues, mantendo a ordem da mais antiga para a mais recente dentro de cada grupo.
### Corrigido
- **Falha Crítica de Privacidade nas Encomendas:** Adicionado filtro de segurança rigoroso no Model de Encomendas. Moradores não podem mais visualizar a lista completa de encomendas do condomínio; agora o sistema restringe os resultados estritamente à unidade/cadastro do usuário logado.
- **Bug do Ajudante Fantasma (CSRF):** Corrigido o erro que impedia a marcação de recados como lidos devido à ausência da classe `CsrfHelper`. A validação do token CSRF nas requisições assíncronas do histórico foi padronizada com o restante do sistema.
- **Regra de Exibição do Sino:** O aviso de pacotes pendentes no cabeçalho foi ajustado para ser exibido exclusivamente para Perfis de Morador, não mais poluindo a interface de administradores e porteiros.
## [v1.21.1] - 2026-05-21
### Adicionado
- **Sistema de Avisos Internos (SaaS):** Integração com o Master Busca Lá para recebimento de comunicados oficiais e avisos importantes diretamente no painel do sistema, com controle e rastreio individualizado de leitura por usuário.
- **Controles Remotos de Segurança (SaaS):** A central Master agora tem a capacidade de bloquear remotamente a edição de configurações sensíveis nos condomínios clientes (Dados Gerais, Disparos de Notificações e Topologia de Unidades), impedindo alterações indevidas.
### Modificado
- **Atualização da API (SaasController):** Recebimento e processamento estruturado de bloqueios e mensagens em tempo real da matriz.
## [v1.21.0] - 2026-05-20
### Adicionado
- **Redesign Completo — Gestão de Usuários (Equipe e Moradores):** A interface da aba `/usuarios` foi totalmente reformulada, substituindo tabelas antigas por painéis modernos.
- **Último Acesso (Colaboradores):** Adicionado rastreamento de último login no banco de dados (`ultimo_acesso`). Os cards da Equipe de Gestão agora exibem essa informação em tempo real (ex: "Hoje às 11:52", "Nunca acessou").
- **Avatares Dinâmicos:** Sistema de avatares inteligente que prioriza a foto de perfil do usuário (se cadastrada) ou gera um círculo com as iniciais do nome sobre um fundo com cor dinâmica calculada a partir das letras do nome.
- **Filtros Avançados (Moradores):** Novo botão de Filtros que aciona um modal com selects de "Bloco" e "Status". Os blocos exibidos nas opções são injetados dinamicamente extraindo apenas os blocos que existem no condomínio atual.
- **Paginação Real no Backend:** A aba de Moradores agora utiliza paginação robusta via banco de dados (`LIMIT` / `OFFSET`) para suportar centenas de registros sem sobrecarregar o navegador, com seletor interativo de itens por página (10, 20 ou 50).
### Modificado
- **Interface Dual (Responsividade Inteligente):** A visualização de Moradores se adapta radicalmente dependendo do dispositivo: no Desktop exibe uma elegante tabela espaçada; no Mobile, a tabela dá lugar a uma lista simplificada super condensada, focada na legibilidade, sem poluição visual.
- **Botões de Ação Inline (Dropdown):** Os botões de ação ("Editar", "Redefinir Senha", "Bloquear", "Remover") foram embutidos em menus dropdown de 3 pontinhos em cada registro, tanto em desktop quanto no mobile.
- **Toggle Dinâmico de Bloqueio:** O botão de "Bloquear usuário" agora analisa o status do alvo e muda inteligentemente para "Ativar usuário" caso a conta já esteja bloqueada, permitindo restauração de acesso em um clique.
- **Retenção de Estado de Aba:** Ações de exclusão, bloqueio ou alteração de senha agora retornam magicamente à aba (Equipe ou Moradores) onde a ação foi originada, em vez de sempre jogar o administrador para o início.
### Corrigido
- **Segurança Anti-Lockout:** Administradores logados agora têm seus próprios botões de "Bloquear" e "Remover" visualmente desabilitados nos seus próprios cards, com travas correspondentes implantadas no Backend para impedir exclusão suicida acidental.
- **Clipping de Menus Dropdown:** Resolvido o corte (clipping) do menu de 3 pontinhos ao usar o recurso próximo ao final da lista, removendo o `overflow-hidden` do container principal em favor de bordas independentes.
- **Correção de Formulários CSRF:** Atualizados os métodos de envio no painel de controle e redefinição de senha para portar adequadamente os tokens CSRF exigidos pelas novas políticas de segurança da plataforma.
## [v1.20.0] - 2026-05-14
### Adicionado
- **Redesign Completo — Listagem de Encomendas:** Página `/encomendas` totalmente reformulada seguindo design mobile-first premium. Inclui barra de busca com gradiente roxo e botão de scanner integrado.
- **Filtros por Status com Contadores:** Abas interativas (Todas, Pendentes, Entregues, Atrasadas) com contagem dinâmica via PHP e filtragem instantânea client-side (Alpine.js).
- **Lembrete de Encomendas Atrasadas:** Nova funcionalidade exclusiva para colaboradores e administradores que permite reenviar notificações (WhatsApp/Email) com mensagem personalizada para encomendas aguardando retirada há mais de 48h.
- **Visualização de Morador no Card:** Nome do destinatário adicionado diretamente nos cards de listagem e na tabela desktop para identificação imediata.
### Modificado
- **Cards de Encomenda:** Novo layout mobile com ícones de pacote coloridos por status, badges de status com dot indicador, e mapeamento visual de transportadoras com emojis/ícones.
- **Busca Aprimorada:** O campo de busca agora filtra adicionalmente pelo nome do morador destinatário em tempo real.
- **Bottom Nav (Alinhamento):** Refatoração do grid da barra de navegação inferior para garantir centralização perfeita de ícones e textos, além de suporte a `safe-area` em dispositivos com notch.
### Corrigido
- **Corte de Filtros:** Ajustado o container de abas de status para permitir scroll horizontal suave sem cortar o último item ("Atrasadas") em telas pequenas.
## [v1.19.0] - 2026-05-12
### Adicionado
- **Redesign Completo — Cadastro de Encomendas:** Tela `Nova Encomenda` totalmente reescrita seguindo novo design mobile-first premium. Página agora é **standalone** (sem header, bottom-nav e footer do sistema), com layout limpo e focado no fluxo de cadastro.
- **Header Próprio com Gradiente:** Barra superior exclusiva com gradiente roxo (`indigo-700 → purple-600 → indigo-800`), botão voltar (←), ícone de pacote, título, subtítulo e botão "✕ Cancelar".
- **Stepper Visual de 3 Etapas:** Indicador de progresso horizontal com etapas numeradas (Destino → Dados da Encomenda → Evidência) conectadas por linhas, com destaque visual na etapa ativa.
- **Seções Numeradas com Ícones:** Cada seção do formulário possui cabeçalho com ícone contextual (pin de localização, caixa, câmera), título numerado e subtítulo descritivo em cards brancos com bordas suaves.
- **Selects com Ícones Inline:** Campos Bloco/Torre, Andar e Apartamento redesenhados com ícones decorativos à esquerda (prédio, escada, casa) e visual `appearance-none` customizado.
- **Leitor de Código de Barras/QR (Ler código):** Botão funcional ao lado do campo de rastreio que abre a câmera do dispositivo via `html5-qrcode` para leitura instantânea de códigos de barras e QR Codes de etiquetas de encomendas, preenchendo automaticamente o campo.
- **Contador de Caracteres na Descrição:** Campo de descrição agora possui limite de 100 caracteres com contador dinâmico "0/100" visível em tempo real (Alpine.js).
- **Upload com Preview Visual:** Área de evidência redesenhada com borda tracejada indigo, ícone de câmera centralizado, textos informativos e preview inline da imagem selecionada com overlay do nome do arquivo e botão de remoção (X vermelho).
- **Botão Submit Gradiente:** Botão "Registrar Encomenda" full-width com gradiente roxo, ícone de pacote, sombra colorida e efeito `active:scale` para feedback tátil.
### Modificado
- **Transportadora:** Visual atualizado para input com ícone de transporte à esquerda e seta dropdown decorativa à direita, mantendo a flexibilidade de texto livre.
- **Estrutura da View:** Arquivo `create.php` agora possui seu próprio `<head>` completo (Tailwind, Alpine.js, Inter font, html5-qrcode) independente do layout global, permitindo experiência fullscreen dedicada ao cadastro.
## [v1.18.0] - 2026-05-11
### Adicionado
- **Redesign Mobile-First (Dashboard):** Interface completamente redesenhada seguindo referência visual premium. Novo header com gradiente roxo (`indigo-700 → purple-600`), informações do condomínio e porteiro exibidas diretamente no topo.
- **Badge de Notificação Animado:** Ícone de sino com badge numeral vermelho no header, contagem em tempo real de notificações pendentes do usuário, com animação CSS `pulse` para chamar atenção.
- **Banner CTA "Registrar Nova Encomenda":** Card com gradiente amber/orange, ícone de caixa, texto descritivo e seta animada ao hover, substituindo o botão simples anterior.
- **3 Stat Cards (Métricas):** Novo painel com cards de Pendentes (ícone indigo), Retiradas Hoje (ícone verde) e Atrasadas >48h (ícone vermelho), cada um com número grande, label e sublabel. Layout responsivo com ícones circulares coloridos.
- **Badge de Tempo Dinâmico:** Cada encomenda pendente exibe badge contextual com tempo de espera: amarelo (<24h "Aguardando Xh"), laranja (24-48h) ou vermelho (>48h "Atrasada X dias"), calculado via `TIMESTAMPDIFF` no MySQL.
- **Bottom Navigation Bar:** Barra de navegação fixa no rodapé mobile com 5 itens: Início, Encomendas, Escanear QR (botão central elevado com gradiente roxo), Relatórios (placeholder futuro) e Perfil. Highlight da página ativa em indigo. Scanner QR integrado diretamente na bottom nav.
- **FAB (Floating Action Button):** Botão flutuante "Nova Encomenda" com gradiente roxo, ícone "+" e label, posicionado acima da bottom nav no mobile.
- **Cards de Pendentes Redesenhados:** Layout com avatar circular (ícone caixa em fundo indigo), nome do morador, badge "Bloco X • Apto Y", transportadora com ícone, data/hora + "Recebido há Xh/dias", e botão "Processar Retirada" verde com chevron.
- **Empty State Premium:** Estado vazio com ícone grande, mensagem amigável e emoji quando não há encomendas pendentes.
### Modificado
- **DashboardController:** Adicionadas queries para contagem de retiradas do dia (JOIN `retirada_encomenda`), encomendas atrasadas (pendentes >48h), notificações pendentes do usuário, e campos `horas_espera`/`dias_espera` via `TIMESTAMPDIFF`.
- **Header (Todas as Páginas):** Migrado de navbar indigo simples para header com gradiente roxo, tipografia Inter (Google Fonts), detecção de página ativa para bottom nav, e menu mobile com `backdrop-blur` e `rounded-xl`.
- **Footer (Todas as Páginas):** Substituído por bottom navigation bar fixa no mobile (aparece em todas as páginas logadas) e footer textual apenas no desktop.
- **Flash Messages Melhoradas:** Alertas de sucesso/aviso/erro redesenhados com ícone em círculo colorido, bordas arredondadas (`rounded-xl`) e efeito `backdrop-blur`.
- **Barra de Busca:** Redesenhada com estilo outlined (botões com borda ao invés de preenchidos), placeholder descritivo e botões "Buscar" + "QR Code" separados.
### Corrigido
- **Conteúdo Oculto pela Bottom Nav:** Corrigido conflito de especificidade CSS onde a classe Tailwind `py-5` sobrescrevia o `padding-bottom` customizado do `has-bottom-nav`. Alterado para `pt-5` (top-only) com `!important` no padding inferior de 10rem.
## [v1.17.1] - 2026-05-01
### Modificado
- **Otimização Mobile-First (Configurações):** O layout da página de configurações foi completamente "limpo" para seguir o padrão da tela de cadastro de usuários. As caixas cinzas e bordas internas foram removidas, os formulários agora repousam diretamente no painel principal, com espaçamentos otimizados (`p-4 sm:p-8`) para dispositivos móveis, botões responsivos de largura total em celulares, e abas com scroll horizontal suavizado e ícones visíveis.
## [v1.17.0] - 2026-04-28
### Adicionado
- **Busca por PIN / QR Code:** Novo campo de busca unificado no Dashboard e na página de Encomendas que aceita PIN, nome do morador, apartamento, bloco, transportadora ou código de rastreio. Botão "Bipar QR Code" abre a câmera do dispositivo (via `html5-qrcode`) para leitura instantânea do QR Code recebido pelo morador via WhatsApp/Email. O sistema localiza a encomenda e redireciona direto para a tela de retirada com o PIN pré-validado.
- **Rota `/encomendas/buscar-pin`:** Nova action que busca encomendas pelo código PIN, valida o status (pendente/entregue) e redireciona para o fluxo correto.
- **Método `findByPin()` no Model:** Busca otimizada com joins completos (porteiro, unidade, destinatário) para localização por PIN.
### Modificado
- **Tela de Retirada (Redesenhada):** Dividida em duas seções: (1) **Conferência** com todos os dados da encomenda (bloco/apto, destinatário, transportadora, rastreio, PIN, data, porteiro, descrição e foto da etiqueta com clique para ampliar) e (2) **Confirmação** com formulário de entrega. Quando o acesso é via QR Code, o PIN aparece pré-preenchido e readonly com badge visual "PIN via QR Code".
- **Mobile-First Otimizado:** Dashboard e listagem de encomendas redesenhados para celulares: modal QR em bottom-sheet, cards de stats em grid 2 colunas, botões com feedback tátil (`active:scale`), fontes e paddings compactos, touch targets maiores, data abreviada sem ano.
- **Filtro de Encomendas:** A busca textual na listagem de encomendas agora inclui o PIN e nome do porteiro como critérios adicionais, sem alterar os filtros existentes.
- **Dashboard Pendentes:** Lista de retirada rápida agora é filtrável em tempo real por nome, apartamento, bloco, transportadora, rastreio ou PIN.
## [v1.16.3] - 2026-04-27
### Modificado
- **Abas de Configurações:** Rótulos encurtados para melhor legibilidade mobile: "Informações do Prédio" → **Geral**, "Matriz de Apartamentos" → **Unidades**, "Notificações" mantido.
- **Encomendas Mobile-First:** Lista de encomendas convertida para layout dual — **cards empilhados** no celular (sem scroll horizontal) e tabela tradicional no desktop. Cada card exibe badge de status, data, unidade, rastreio e botão "Visualizar" em largura total.
## [v1.16.2] - 2026-04-27
### Modificado
- **Rodapé Simplificado:** Texto do footer alterado de "Busca Lá - SaaS Multitenant" para "Busca Lá" e rótulo de versão reduzido de "Versão Ativa:" para "V".
- **Alertas Toast Centralizados:** Flash messages (sucesso, aviso, erro) migrados das views individuais para o layout compartilhado (`header.php`). Agora aparecem como notificações compactas fixas no canto superior direito com auto-dismiss (4-6s), botão de fechar e animações suaves via Alpine.js.
### Corrigido
- **Alerta na Página Errada:** Corrigido bug onde o alerta de sucesso ao salvar configurações aparecia no Dashboard ao invés da própria página de Configurações, causado pela ausência dos blocos de flash message na view.
## [v1.16.1] - 2026-04-27
### Adicionado
- **Menu Mobile (Hamburger):** Botão ☰/✕ animado visível apenas em celulares que abre um painel dropdown com navegação completa: avatar com inicial do usuário, link ao perfil, todos os itens de menu com ícones, seção de administração (condicional ao perfil admin) e botão "Sair" em destaque. Fecha ao clicar fora, no ✕ ou em qualquer link.
## [v1.16.0] - 2026-04-27
### Adicionado
- **Página de Perfil:** Novo módulo `/perfil` onde qualquer usuário logado (admin, porteiro ou morador) pode visualizar e editar seus próprios dados (nome, e-mail, telefone) de forma autônoma.
- **Troca de Senha Segura:** Formulário independente para alteração de senha que exige a senha atual antes de permitir a mudança, com validação em tempo real (Alpine.js) de confirmação.
- **Avatar com Iniciais:** Cabeçalho do perfil exibe um avatar dinâmico com as iniciais do usuário sobre um gradiente indigo, junto com badges de perfil, unidade e data de cadastro.
### Modificado
- **Header de Navegação:** O nome do usuário no canto superior direito agora é um link clicável que leva diretamente à página de perfil.
## [v1.15.2] - 2026-04-27
### Modificado
- **Menu de Navegação:** Renomeados os itens do menu para termos mais intuitivos: "Equipe" → **Pessoas** e "Topologia/Torres" → **Configurações**.
## [v1.15.1] - 2026-04-27
### Adicionado
- **Redirecionamento Raiz:** Novo `.htaccess` na raiz do projeto permite acessar o sistema diretamente via `/buscala/` sem precisar digitar `/buscala/public/` na URL.
### Modificado
- **BASE_URL Dinâmica:** A constante `BASE_URL` agora é calculada automaticamente a partir do protocolo (HTTP/HTTPS), host, porta e caminho do script. Funciona sem alteração manual em localhost, subdomínios, portas customizadas e hospedagens externas.
## [v1.15.0] - 2026-04-27
### Adicionado
- **Seleção de Morador Destinatário:** Ao registrar uma encomenda, o porteiro agora pode selecionar um morador específico como destinatário através de **cards interativos** que aparecem após escolher o apartamento. Somente o morador selecionado receberá a notificação (WhatsApp e/ou E-mail).
- **Card "Todos" (Padrão):** Opção pré-selecionada que mantém o comportamento original, notificando todos os moradores da unidade.
- **Rastreabilidade do Destinatário:** Nova coluna `morador_id` na tabela `encomendas` registra qual morador foi escolhido, exibida nos detalhes da encomenda como "Destinatário".
### Modificado
- `EncomendaController`: Métodos `create()`, `store()` e `show()` atualizados para suportar a seleção e filtragem de moradores.
- `Views/encomendas/create.php`: Substituído o alerta estático de moradores por cards clicáveis com animações (Alpine.js), ícones de check e transições suaves.
- `Views/encomendas/show.php`: Novo campo "Destinatário" nos detalhes, com ícone contextual (individual vs. todos).
- Schema do Banco de Dados: Coluna `morador_id INT NULL` adicionada com FK para `usuarios(id)`.
## [v1.14.0] - 2026-04-23
### Adicionado
- **Painel de Gestão de Notificações:** Nova aba em Configurações para ativar/desativar de forma global (Ligar/Desligar) alertas de WhatsApp e E-mail para o condomínio.
- **Serviço de E-mail SMTP Nativo:** Implementada integração robusta via SMTP (`fsockopen` e `STARTTLS`) para disparar mensagens autênticas através de contas do Office 365 ou provedores externos, contornando a dependência de pacotes externos ou servidor local.
- **E-mails Ricos com QR Code:** Novo template HTML estilizado para recibos de chegada de encomendas que agora embute nativamente o QR Code de segurança para leitura óptica na tela do celular do morador.
- **Campos de Configuração de E-mail:** Inclusão de chaves de conexão seguras no arquivo raiz `config.php`.
### Modificado
- `EncomendaController`: Atualizado o fluxo de chegada (`store`) e entrega (`confirmarRetirada`) para validar o estado das notificações e gerir o envio de e-mail junto com o envio de WhatsApp.
- Schema do Banco de Dados: Novas colunas booleanas (`notifica_whatsapp`, `notifica_email`) criadas e populadas ativamente em `configuracoes_condominio`.
## [v1.13.1] - 2026-04-23
### Modificado
- **Otimização Mobile-First:** Refatoração completa das telas de `Configurações`, `Dashboard`, `Usuários` e `Encomendas` para dispositivos móveis. Tabelas e abas receberam scroll horizontal nativo (`overflow-x-auto`) para não espremer textos. Grids fixos foram convertidos para flex/grid responsivos, permitindo que os elementos caiam um embaixo do outro no celular.
- **Card de Retirada (Dashboard):** A lista de "Retirada Rápida" teve seu foco alterado da transportadora para o **Morador e Unidade**. Adicionado um sistema inteligente que exibe apenas o primeiro nome do morador em celulares (para economizar espaço) e o nome e sobrenome em telas maiores.
## [v1.13.0] - 2026-04-23
### Adicionado
- **Detalhamento de Encomendas:** Inclusão de dois novos campos no registro de pacotes: `Código de Rastreio` (obrigatório) e `Descrição` (opcional).
- **Notificações Inteligentes:** A mensagem de WhatsApp agora trata moradores e porteiros pelo *Nome e Sobrenome*, e inclui automaticamente o código de rastreio e descrição do pacote na notificação de chegada.
- **Busca em Tempo Real:** Implementado um filtro instantâneo via AlpineJS na lista de "Todas as Encomendas", permitindo buscas ultra-rápidas por rastreio, unidade ou transportadora.
- **Modo de Visualização (Read-only):** Nova tela segura para visualizar detalhes completos e comprovantes de uma encomenda, acessível pelo botão "Visualizar".
### Corrigido
- **Fuso Horário Global:** Forçado o timezone `America/Sao_Paulo` (GMT-3) tanto na instância do PHP quanto na conexão PDO do banco de dados, garantindo que a data/hora real de registros e notificações seja perfeitamente sincronizada com o horário de Brasília.
## [v1.12.1] - 2026-04-23
### Modificado
- **Página de Changelog (UI):** Redesign completo da página de Histórico de Versões. O layout antigo foi substituído por uma *Timeline Premium Dinâmica*, com ícones coloridos por categoria, background glassmorphism e melhor hierarquia visual para leitura.
- **Parser de Markdown:** O renderizador do Changelog foi refatorado para usar manipulação direta de DOM ao invés de overrides nativos do marked.js, corrigindo o sumiço das listas e tornando o componente imune a quebras de CDN.
## [v1.12.0] - 2026-04-23
### Adicionado
- **Controle de Acesso de Moradores:** Introduzida nova trava de segurança no nível do banco de dados (`acesso_sistema`) para permitir que moradores sejam cadastrados no sistema (para recebimento de encomendas e notificações) sem que tenham acesso ao painel de login.
- **Toggle de Permissão UI:** Adicionado um interruptor visual nas páginas de Criação e Edição de Usuários para controlar explicitamente o acesso de moradores, vindo bloqueado por padrão por razões de segurança.
- **Bloqueio no Login:** O `AuthController` agora rejeita ativamente tentativas de login de usuários marcados sem permissão de sistema, retornando um aviso amigável.
## [v1.11.3] - 2026-04-23
### Adicionado
- **Segurança Anti-Acidente na Edição:** A página de edição de usuários agora carrega e bloqueia por padrão os dados da unidade do morador (Bloco/Andar/Apto). Um botão "Alterar Unidade" foi adicionado para liberar a edição intencionalmente.
- **Senhas Automáticas:** Ao criar um novo usuário sem especificar uma senha provisória, o sistema passa a gerar automaticamente uma senha alfanumérica segura de 6 caracteres.
### Modificado
- **Preenchimento de Unidades:** A página de edição agora pré-seleciona corretamente toda a árvore de unidade (Bloco e Andar) de acordo com o vínculo já existente do morador no banco de dados.
- **Edição de Senhas:** O campo de senha na edição de usuários deixou de ser obrigatório, permitindo atualizar outras informações cadastrais sem forçar a troca de senha.
## [v1.11.2] - 2026-04-23
### Adicionado
- **Título Dinâmico (Browser):** A tag `<title>` do navegador agora exibe dinamicamente o nome do condomínio atrelado à sessão do usuário (`Busca Lá - [Nome]`).
- **Notificações Multitenant:** As mensagens de WhatsApp de registro e retirada de encomendas agora incluem o nome exato do condomínio de onde a mensagem está sendo enviada, melhorando a clareza para o morador.
## [v1.11.1] - 2026-04-23
### Modificado
- **Navegação em Abas:** A interface da página de Configurações foi completamente redesenhada para utilizar navegação por abas interativas (AlpineJS), separando visualmente "Informações do Prédio" e "Matriz de Apartamentos" em janelas distintas, proporcionando uma experiência de usuário (UX) mais limpa e focada.
## [v1.11.0] - 2026-04-23
### Adicionado
- **Perfil do Condomínio:** A página de configurações agora possui uma seção exclusiva para as "Informações Gerais" (Nome, Endereço e Responsável) que é salva de forma independente, sem risco de afetar a topologia de apartamentos.
### Corrigido
- **Acentuação no Nome:** Corrigido um bug onde o nome do condomínio não aceitava acentos adequadamente (ex: "Condomínio" virava "Condomínio"). O sistema agora processa os caracteres nativamente com proteção `PDO` contra injeção SQL.
## [v1.10.0] - 2026-04-23
### Adicionado
- **Configuração do Condomínio:** Nova funcionalidade para o administrador personalizar o nome do Condomínio diretamente na tela de configurações.
- **Proteção Anti-Acidentes:** Inserida dupla validação (Checkbox obrigatório e popup de confirmação no navegador) para evitar que a topologia de unidades seja regerada e apagada por acidente.
## [v1.9.2] - 2026-04-23
### Modificado
- **Identificação da Equipe:** As notificações de recebimento e entrega via WhatsApp agora informam o nome exato do porteiro que atendeu a encomenda, gerando mais rastreabilidade e confiança para o morador.
## [v1.9.1] - 2026-04-23
### Adicionado
- **QR Code na Retirada:** As notificações do WhatsApp agora geram automaticamente um QR Code atrelado ao PIN de segurança e o enviam como imagem com legenda para o morador, agilizando a leitura na portaria.
- **Melhoria Textual:** Nova formatação na mensagem de notificação, com nome do morador, emojis e instruções claras.
## [v1.9.0] - 2026-04-23
### Adicionado
- **Notificação Automática via WhatsApp:** Integração síncrona com a Z-API para avisar os moradores instantaneamente quando uma encomenda chega na portaria, incluindo link de loading em tela.
- **Variáveis de Ambiente Seguro:** Configurado suporte a `.env` para proteção de credenciais sensíveis (Token e Instância da API).
- **Campo de Contato:** Incluído suporte a campo `telefone` no cadastro de Moradores.
## [v1.8.2] - 2026-04-22
### Modificado
- **Refinamento Visual (Parte 2):** O cartão dinâmico exibindo os moradores foi movido para fora da coluna de "Apartamento" para que ele ocupe 100% da linha abaixo com conforto, evitando "espremer" nomes colossais.
## [v1.8.1] - 2026-04-22
### Modificado
- **Refinamento Visual:** Corrigida a quebra/corte de nomes muito grandes no Select da Portaria. Agora a caixinha exibe estritamente o número do apartamento e revela dinamicamente os nomes dos Moradores abaixo dela em um bonito cartão de leitura rápida.
## [v1.8.0] - 2026-04-22
### Adicionado
- **Módulo de Edição de Membros:** Agora o Síndico (Admin) possui poder para editar as credenciais, status (Ativo/Inativo) e vinculações de endereço de qualquer cadastrado no sistema (Porteiros e Moradores) clicando no prático botão "Editar" de suas respectivas tabelas.
## [v1.7.1] - 2026-04-22
### Modificado
- **Interface em Abas na Gestão:** A tela de Equipe/Usuários foi convertida em um painel *Tabbed* (Abas) ultrarrápido gerenciado por motor Alpine.js, ocultando informações para manter a visão analítica focada.
## [v1.7.0] - 2026-04-22
### Modificado
- **Tabelas de Gestão Segmentadas:** O menu "Equipe" agora divide visualmente os registros em dois quadros estéticos distintos: "Equipe de Gestão" (para porteiros/síndicos) e "Moradores", exibindo a qual apartamento o morador está atrelado.
- **Cascata na Matrícula:** A mesma tecnologia de seleção AlpineJS rápida (Bloco -> Andar -> Apto) foi portada para a tela de Novo Usuário se o perfil "Morador" for escolhido.
## [v1.6.0] - 2026-04-22
### Adicionado
- **Cadastro Vinculado de Moradores:** O Admin agora pode anexar um usuário (Morador) pontualmente à sua Unidade mapeada pela topologia.
- **Identificação Visual na Entrega:** O porteiro, ao iniciar o triplo fluxo de dropdown do recebimento (Bloco -> Andar -> Apto), visualizará o nome completo do(s) morador(es) daquela casa impresso ao lado do número (ex: "Apto 101 - (João da Silva)"), fortalecendo o *double-check* processual de entregas.
## [v1.5.0] - 2026-04-22
### Adicionado
- **Setup de Topologia (Engenharia de Prédio):** Foi incluso um módulo Admin robusto que permite ao síndico determinar como o prédio é estruturado (Andares, Torres, Tipo de Numeração).
- **Injeção Restritiva de Unidades:** O algoritmo substitui as entradas "livres" textuais dos porteiros, gerando uma base fixa imutável de apartamentos baseada na matemática do Setup.
- **Cascata de Seleção Inteligente (Alpine.js):** Na tela de Nova Encomenda, a seleção do destino agora é dividida em 3 passos interativos e ultra-rápidos (Bloco -> Andar -> Apartamento), eliminando a rolagem infinita.
## [v1.4.0] - 2026-04-22
### Adicionado
- **Módulo de Reservas:** Funcionalidade que permite a moradores solicitar e visualizar áreas comuns (Churrasqueira, Salão Múltiplo, Quadras).
- **Entidades Auxiliares (Áreas Comuns e Reservas):** Arquitetura estendida isolada por tenant para as reservas de comodidades com sistema de datas (`data_reserva`).
## [v1.3.0] - 2026-04-22
### Adicionado
- **Controles de Acesso (RBAC):** Middlewares de hierarquia dupla (`AdminMiddleware` e `ColaboradorMiddleware`) implantados, segmentando com extrema segurança as permissões de Moradores, Porteiros e Síndicos.
- **Painel de Controle de Conta:** Implementada a UI da página de Gestão da Equipe (`/usuarios`), permitindo aos administradores convidar porteiros ou registrar novos vizinhos com bloqueio ativo em cascata nas actions.
## [v1.2.0] - 2026-04-22
### Adicionado
- **Upload Seguro de Mídias:** Adicionado o manuseio de arquivos para fotos/etiquetas fora do repositório público (Storage Folder restrito).
- **Controlador de Arquivos Privados:** Módulo `MediaController` incluso no Router para visualizar de forma autenticada fotos de retiradas e pacotes.
- **PIN de Segurança:** Cada encomenda agora gera aleatoriamente um PIN único (6 dígitos Alfanuméricos) enviado em conjunto com a notificação engatilhada.
## [v1.1.0] - 2026-04-22
### Adicionado
- **Retirada Rápida:** Funcionalidade de baixar encomendas diretamente através do Dashboard.
- **Notificações Automáticas:** Gatilho simulado (E-mail/WhatsApp base) na tabela de banco de dados ao registrar encomenda.
## [v1.0.0] - 2026-04-22
### Adicionado
- Configuração inicial do projeto "Busca Lá" SaaS.
- Estrutura de banco de dados para Condomínios, Usuários, Unidades e Encomendas.
- Arquitetura MVC Pura em PHP 8.
- Autoloader Nativo.
- Suporte a Multitenancy com Isolamento de Dados por `condominio_id`.
- Interface inicial com Tailwind CSS via CDN e Alpine.js.
- Página de Histórico de Versões.