One Hat Cyber Team
Your IP :
216.73.216.86
Server IP :
162.240.179.46
Server :
Linux vps-14493116.nutrivittasaude.com.br 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
lifeprimeti
/
central.lifeprimeti.com.br
/
Edit File:
schema.sql
-- Sistema SaaS de Cadastro de Grupos WhatsApp -- MySQL 8.x / PHP 8.2 -- ATENCAO: Este schema reflete a estrutura ATUAL do banco. CREATE DATABASE IF NOT EXISTS whatsapp_grupos CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE whatsapp_grupos; -- ===== CONTAS (CLIENTES) ===== CREATE TABLE IF NOT EXISTS accounts ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(100) NOT NULL, email VARCHAR(255) NOT NULL UNIQUE, senha VARCHAR(255) NOT NULL, plano ENUM('gratuito','basico','profissional','enterprise') NOT NULL DEFAULT 'gratuito', ativo TINYINT(1) NOT NULL DEFAULT 1, api_key VARCHAR(64) UNIQUE, max_grupos INT UNSIGNED NOT NULL DEFAULT 50, max_categorias INT UNSIGNED NOT NULL DEFAULT 10, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, ultimo_login TIMESTAMP NULL, INDEX idx_email (email), INDEX idx_api_key (api_key) ) ENGINE=InnoDB; -- ===== CATEGORIAS ===== CREATE TABLE IF NOT EXISTS categorias ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(80) NOT NULL, slug VARCHAR(100) NOT NULL, descricao VARCHAR(255), cor VARCHAR(7) DEFAULT '#0d6efd', icone VARCHAR(50) DEFAULT 'bi-tag', ordem INT UNSIGNED DEFAULT 0, ativo TINYINT(1) NOT NULL DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_slug (slug) ) ENGINE=InnoDB; -- ===== GRUPOS WHATSAPP ===== CREATE TABLE IF NOT EXISTS grupos ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, categoria_id INT UNSIGNED, nome VARCHAR(150) NOT NULL, descricao TEXT, link_convite VARCHAR(255) NOT NULL, imagem_url VARCHAR(500), membros INT UNSIGNED DEFAULT 0, pais VARCHAR(100), idioma VARCHAR(50) DEFAULT 'Português', ativo TINYINT(1) NOT NULL DEFAULT 1, destaque TINYINT(1) NOT NULL DEFAULT 0, views INT UNSIGNED DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (categoria_id) REFERENCES categorias(id) ON DELETE SET NULL, INDEX idx_categoria_id (categoria_id), INDEX idx_ativo (ativo), INDEX idx_destaque (destaque) ) ENGINE=InnoDB; -- ===== API KEYS ===== CREATE TABLE IF NOT EXISTS api_keys ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, account_id INT UNSIGNED NOT NULL, nome VARCHAR(100) NOT NULL, key_hash VARCHAR(64) NOT NULL, permissoes JSON, ativo TINYINT(1) NOT NULL DEFAULT 1, ultimo_uso TIMESTAMP NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE, INDEX idx_account_id (account_id), INDEX idx_key_hash (key_hash) ) ENGINE=InnoDB; -- ===== LOGS DA API ===== CREATE TABLE IF NOT EXISTS api_logs ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, account_id INT UNSIGNED NOT NULL, endpoint VARCHAR(255) NOT NULL, method VARCHAR(10) NOT NULL, status_code SMALLINT UNSIGNED NOT NULL, ip_address VARCHAR(45), user_agent VARCHAR(500), response_time_ms INT UNSIGNED DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE, INDEX idx_account_id (account_id), INDEX idx_created_at (created_at) ) ENGINE=InnoDB; -- ===== SUPER ADMINS ===== CREATE TABLE IF NOT EXISTS super_admins ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(100) NOT NULL, email VARCHAR(255) NOT NULL UNIQUE, senha VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- ===== PLANOS ===== CREATE TABLE IF NOT EXISTS planos ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(100) NOT NULL, descricao TEXT, max_grupos INT UNSIGNED NOT NULL DEFAULT 10, max_categorias INT UNSIGNED NOT NULL DEFAULT 5, max_usuarios INT UNSIGNED NOT NULL DEFAULT 1, max_requisicoes INT UNSIGNED NOT NULL DEFAULT 1000, dias_teste INT UNSIGNED NOT NULL DEFAULT 0, preco DECIMAL(10,2) NOT NULL DEFAULT 0.00, periodo ENUM('diario','semanal','mensal','trimestral','semestral','anual','vitalicio') NOT NULL DEFAULT 'mensal', metodos_pagamento JSON NOT NULL DEFAULT ('["manual"]'), destaque TINYINT(1) NOT NULL DEFAULT 0, ativo TINYINT(1) NOT NULL DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- ===== ASSINATURAS ===== CREATE TABLE IF NOT EXISTS assinaturas ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, account_id INT UNSIGNED NOT NULL, plano_id INT UNSIGNED NOT NULL, status ENUM('ativa','cancelada','expirada','pendente','trial') NOT NULL DEFAULT 'trial', data_inicio DATE NOT NULL, data_fim DATE, periodo ENUM('diario','semanal','mensal','trimestral','semestral','anual','vitalicio') NOT NULL DEFAULT 'mensal', preco_cobrado DECIMAL(10,2) NOT NULL DEFAULT 0.00, metodo_pagamento ENUM('mercadopago','asaas','manual') NOT NULL DEFAULT 'manual', renovacao_automatica TINYINT(1) NOT NULL DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE, FOREIGN KEY (plano_id) REFERENCES planos(id), INDEX idx_account (account_id), INDEX idx_status (status) ) ENGINE=InnoDB; -- ===== PAGAMENTOS ===== CREATE TABLE IF NOT EXISTS pagamentos ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, assinatura_id INT UNSIGNED NOT NULL, account_id INT UNSIGNED NOT NULL, plano_id INT UNSIGNED NOT NULL, valor DECIMAL(10,2) NOT NULL DEFAULT 0.00, metodo ENUM('mercadopago','asaas','manual') NOT NULL DEFAULT 'manual', status ENUM('pendente','aprovado','recusado','cancelado','reembolsado') NOT NULL DEFAULT 'pendente', transacao_id VARCHAR(255), codigo_boleto VARCHAR(255), link_pagamento VARCHAR(500), data_pagamento TIMESTAMP NULL, data_vencimento DATE, observacao TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (assinatura_id) REFERENCES assinaturas(id) ON DELETE CASCADE, FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE, FOREIGN KEY (plano_id) REFERENCES planos(id), INDEX idx_account (account_id), INDEX idx_status (status), INDEX idx_vencimento (data_vencimento) ) ENGINE=InnoDB; -- ===== CONFIG EMAIL (SMTP) ===== CREATE TABLE IF NOT EXISTS config_email ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, smtp_host VARCHAR(255) NOT NULL DEFAULT '', smtp_port INT UNSIGNED NOT NULL DEFAULT 587, smtp_user VARCHAR(255) NOT NULL DEFAULT '', smtp_pass VARCHAR(255) NOT NULL DEFAULT '', smtp_encryption ENUM('tls','ssl','none') NOT NULL DEFAULT 'tls', email_remetente VARCHAR(255) NOT NULL DEFAULT '', nome_remetente VARCHAR(255) NOT NULL DEFAULT '', ativo TINYINT(1) NOT NULL DEFAULT 0, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- ===== CONFIG PAGAMENTO (GATEWAYS) ===== CREATE TABLE IF NOT EXISTS config_pagamento ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, metodo ENUM('mercadopago','asaas') NOT NULL UNIQUE, chave_publica VARCHAR(500), chave_secreta VARCHAR(500), access_token VARCHAR(500), ambiente ENUM('sandbox','producao') NOT NULL DEFAULT 'sandbox', ativo TINYINT(1) NOT NULL DEFAULT 0, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- ===== CONSUMO DIÁRIO ===== CREATE TABLE IF NOT EXISTS consumo_diario ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, account_id INT UNSIGNED NOT NULL, data DATE NOT NULL, total_requisicoes INT UNSIGNED NOT NULL DEFAULT 0, total_200 INT UNSIGNED NOT NULL DEFAULT 0, total_400 INT UNSIGNED NOT NULL DEFAULT 0, total_500 INT UNSIGNED NOT NULL DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE, UNIQUE KEY uk_consumo_dia (account_id, data), INDEX idx_data (data) ) ENGINE=InnoDB; -- ===== CONFIG ===== CREATE TABLE IF NOT EXISTS config ( chave VARCHAR(100) PRIMARY KEY, valor TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- ===== SUPER ADMIN PADRÃO ===== -- Senha: admin123 (hash Argon2id) -- Senha padrão: admin123 (hash gerado localmente, regenere se necessário) INSERT IGNORE INTO super_admins (nome, email, senha) VALUES ('Super Admin', 'admin@whatsgrupos.com', '$argon2id$v=19$m=65536,t=4,p=3$VWc5UTh1bWlCemguZGdGMg$3PkqXzi/DYUWxZMJ4o3N8pWbco6cQAs4Y1MeDjqNMA4'); -- ===== NOTIFICAÇÕES ===== CREATE TABLE IF NOT EXISTS notificacoes ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, account_id INT UNSIGNED DEFAULT NULL, mensagem TEXT NOT NULL, lida TINYINT(1) NOT NULL DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE, INDEX idx_account_id (account_id), INDEX idx_lida (lida) ) ENGINE=InnoDB; -- ===== CALENDÁRIO DE LANÇAMENTOS ===== CREATE TABLE IF NOT EXISTS calendario_lancamentos ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, titulo VARCHAR(255) NOT NULL, descricao TEXT, data_evento DATE NOT NULL, hora_evento TIME, criado_por INT UNSIGNED NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (criado_por) REFERENCES super_admins(id), INDEX idx_data (data_evento) ) ENGINE=InnoDB; -- ===== PLANOS PADRÃO ===== INSERT IGNORE INTO planos (nome, descricao, max_grupos, max_categorias, max_usuarios, max_requisicoes, preco, periodo, metodos_pagamento, destaque, ativo) VALUES ('Gratuito', 'Plano gratuito para testes', 5, 3, 1, 100, 0.00, 'mensal', '["manual"]', 0, 1), ('Básico', 'Ideal para pequenos projetos', 30, 10, 2, 5000, 29.90, 'mensal', '["manual","mercadopago","asaas"]', 0, 1), ('Profissional', 'Para negócios em crescimento', 100, 25, 5, 50000, 79.90, 'mensal', '["manual","mercadopago","asaas"]', 1, 1), ('Enterprise', 'Solução completa e ilimitada', 999999, 999999, 999999, 999999, 199.90, 'mensal', '["manual","mercadopago","asaas"]', 0, 1), ('Vitalício', 'Acesso permanente com todos os recursos', 999999, 999999, 999999, 999999, 499.90, 'vitalicio', '["manual","mercadopago","asaas"]', 0, 1);
Simpan