{{ pageTitle }}
Dashboard
{{ currentUser.role==='superadmin' ? 'Visão geral do sistema' : 'Visão geral do seu condomínio' }}
| Data/Hora | Condomínio | Visitante | Apartamento | Morador | Decisão |
|---|---|---|---|---|---|
| {{ fmtDate(l.created_at) }} | {{ l.client_name || '—' }} | {{ l.visitor_name || '—' }} | {{ l.destination_apt || '—' }} | {{ l.resident_name || '—' }} | {{ decisionLabel(l.decision) }} |
Condomínios
{{ clients.length }} condomínio(s) cadastrado(s)
| Data/Hora | Visitante | Apto | Morador | Decisão |
|---|---|---|---|---|
| {{ fmtDate(l.created_at) }} | {{ l.visitor_name || '—' }} | {{ l.destination_apt || '—' }} | {{ l.resident_name || '—' }} | {{ decisionLabel(l.decision) }} |
| Nome | Apt | Função | Ramal | E-mail / App | |
|---|---|---|---|---|---|
| {{ r.name }} | {{ r.apartment }} | {{ r.role==='sindico'?'👑 Síndico':r.role==='zelador'?'🔧 Zelador':'👤 Morador' }} — | {{ r.extension_number || '—' }} | {{ r.email }} Sem acesso ao app |
pbx.suporttechcuritiba.com.br) ou o IP, porta 7040. Usuário SIP = número do ramal, senha = coluna abaixo.Abertura de porta: O sistema envia DTMF
# automaticamente ao autorizar acesso. Verifique em Configurações → Intercomunicador → Controle Remoto que o código de abertura é #.
| Número | Label | Tipo | Aparelho | Senha SIP | Status | |
|---|---|---|---|---|---|---|
| {{ e.number }} | {{ e.label }} | {{ e.ext_type==='portaria'?'Portaria':'Resid.' }} | {{ e.device_type==='iphone'?'📱 iPhone':(e.device_type==='android'?'🤖 Android':(e.device_type==='facial'?'📹 Facial':(e.device_type==='fixo'?'☎️ Fixo':e.device_type))) }}— | {{ e.password }} | {{ e.registered ? 'Registrado' : 'Offline' }} |
| Apartamento | Ramal do Grupo (80XX) | Dispositivos |
|---|---|---|
| Ap {{ a.number }} | {{ a.group_extension || '—' }} | {{ a.devices ? a.devices.length : 0 }} ramal(is) |
| Ramal | Label | URL RTSP | Status | |
|---|---|---|---|---|
| {{ e.number }} | {{ e.label }} | Configurado Sem câmera |
| Morador | Apto | Descrição | Valor | Vencimento | Status | |
|---|---|---|---|---|---|---|
| {{ b.resident_name || '—' }} | {{ b.apt || '—' }} | {{ b.description.split(' | ')[0] }} 📄 PDF {{ b.description }} | R$ {{ Number(b.amount).toFixed(2) }} | {{ b.due_date || '—' }} | ✓ Pago 💬 WA Vencido Pendente |
| Nome | Tipo | Capacidade | Horário | Aprovação | |
|---|---|---|---|---|---|
| {{ a.name }} | {{ a.type }} | {{ a.capacity }} pessoas | {{ a.available_start }} – {{ a.available_end }} | {{ a.requires_approval ? 'Manual' : 'Automática' }} |
| Espaço | Morador | Apto | Data | Horário | Status | |
|---|---|---|---|---|---|---|
| {{ b.amenity_name || '—' }} | {{ b.user_name }} | {{ b.apt_number }} | {{ b.date }} | {{ b.start_time }} – {{ b.end_time }} | {{ b.status==='pending'?'Pendente':b.status==='approved'?'Aprovada':b.status==='rejected'?'Recusada':'Cancelada' }} |
| Número | Tipo | Apartamento | Placa | |
|---|---|---|---|---|
| Vaga {{ v.number }} | {{ v.type==='covered'?'🅿️ Coberta':'🚗 Descoberta' }} | {{ v.apt_number ? ('Apt '+v.apt_number) : '—' }} | {{ v.plate || '—' }} |
| Vencimento | Valor | Status | Ação |
|---|---|---|---|
| {{ p.dueDate }} | R$ {{ parseFloat(p.value||0).toFixed(2) }} | {{ {RECEIVED:'Pago',CONFIRMED:'Confirmado',OVERDUE:'Vencido',PENDING:'Pendente'}[p.status]||p.status }} | 📄 PDF 🔗 Ver |
📄 Gerador de Contrato
Preencha os campos e clique em Gerar PDF. O contrato abre em nova aba — use Ctrl+P para salvar como PDF.
| Ramal | Identificação | Status |
|---|---|---|
| {{ d.number }} | {{ d.label }} | {{ d.registered ? 'Online' : 'Offline' }} |
Usuários do Sistema
Gerencie acesso de administradores
| Usuário | Perfil | Condomínio | Último acesso | Status | ||
|---|---|---|---|---|---|---|
|
{{ u.username?.[0]?.toUpperCase() }}
{{ u.username }}
|
{{ u.email || '—' }} | {{ u.role==='superadmin'?'Super Admin':'Admin' }} | {{ u.client_name || '—' }} | {{ u.last_login ? fmtDate(u.last_login) : 'Nunca' }} | {{ u.active?'Ativo':'Inativo' }} |
🖥️ Logs do Sistema (tempo real)
Uvicorn, Issabel/SSH, exceções — atualiza sozinho, sem precisar recarregar.
Histórico de Chamadas
{{ logsTotal }} registros encontrados
| Data/Hora | Condomínio | Visitante | Apartamento | Morador | Motivo | Decisão |
|---|---|---|---|---|---|---|
| {{ fmtDate(l.created_at) }} | {{ l.client_name || '—' }} | {{ l.visitor_name || '—' }} | {{ l.destination_apt || '—' }} | {{ l.resident_name || '—' }} | {{ l.reason || '—' }} | {{ decisionLabel(l.decision) }} |
📱 App Mobile SuportTech Interfones
Distribua o aplicativo para moradores e síndicos
Dois links disponíveis — use o da VPS para distribuição direta:
- Baixe o APK pelo link acima
- No celular: Configurações → Segurança
- Ative "Instalar apps desconhecidos"
- Abra o arquivo APK baixado
- Toque em Instalar
Para iPhone/iPad, o app funciona como Web App instalável diretamente pelo Safari.
- Abra o link acima no Safari
- Toque no ícone de Compartilhar (caixa com seta)
- Role para baixo e toque em "Adicionar à Tela Inicial"
- Toque em Adicionar
- O app aparecerá na tela inicial como um ícone
Configurações do Sistema
Chaves de API, conexão Asterisk e status
https://{{ sysSettings.asterisk_host || 'seu-dominio' }}/api/asaas/webhookpara os eventos PAYMENT_RECEIVED e PAYMENT_CONFIRMED.
VPN / Rede Privada
WireGuard — 10.200.1.0/24 — dispositivos em rede interna sem redirecionamento de portas
| Status | Dispositivo | IP VPN | Endpoint Real | Último Handshake | RX / TX | |
|---|---|---|---|---|---|---|
|
{{ p.connected ? 'Online' : 'Offline' }}
|
{{ p.label || '(sem nome)' }}
{{ p.pubkey.substring(0,20) }}...
|
{{ p.vpn_ip || '—' }} |
{{ p.endpoint || '—' }} | {{ vpnFormatHandshake(p.latest_handshake) }} | {{ vpnFormatBytes(p.rx_bytes) }} / {{ vpnFormatBytes(p.tx_bytes) }} |
10.200.1.1 — 178.92.163.22310.200.1.2 → 10.10.1.0/2410.200.1.3 — 104.234.200.9310.200.1.4 — 82.152.175.169http://10.10.1.233/ISAPI/AccessControl/RemoteControl/door/0
Status da conexão WhatsApp — número único do condomínio (via Smart Locker)