Esquema do Banco de Dados
Visão geral de todas as tabelas do banco de dados no FeedbackPulse SaaS.
Referência de Tabelas
Tabelas da Plataforma (Sem Escopo de Tenant)
| Tabela | Descrição | Colunas Principais |
|---|---|---|
platform_settings | Configuração global de chave-valor (criptografada para segredos) | key, value |
plans | Planos de assinatura com preços e flags de recursos | name, monthly_price, annual_price, max_*, feature_* |
landing_pages | Dados do construtor de página inicial com HTML em cache | sections (JSON), cached_html, is_published |
payment_events | Log de eventos de webhook do Stripe/PayPal | gateway, event_id, event_type, payload (JSON) |
audit_logs | Trilha de auditoria de ações | user_id, action, description, old_values, new_values |
cron_logs | Log de execução de tarefas agendadas | job_name, status, output, duration_seconds |
Tabelas de Tenants
| Tabela | Descrição | Colunas Principais |
|---|---|---|
tenants | Contas multi-tenant | name, slug, subdomain, plan_id, status, settings (JSON) |
tenant_domains | Mapeamentos de domínios personalizados | tenant_id, domain, status, verified_at |
users | Todas as contas de usuários (todas as funções) | name, email, role, tenant_id, two_factor_secret |
products | Produtos de feedback | tenant_id, name, slug, type, category, is_active |
feedback_campaigns | Configurações de formulários de feedback | tenant_id, product_id, name, slug, survey_schema (JSON), status |
feedback_submissions | Entradas individuais de feedback | tenant_id, campaign_id, product_id, star_rating, nps_score, text_feedback, sentiment_*, status |
feedback_tags | Definições de tags | tenant_id, name |
feedback_submission_tag | Pivot muitos-para-muitos | submission_id, tag_id |
team_members | Registros de equipe do tenant | tenant_id, user_id, role |
team_invitations | Convites pendentes | tenant_id, email, role, token, expires_at |
api_keys | Chaves de API do tenant (com hash) | tenant_id, name, key, scopes, is_active |
roadmap_items | Itens do roadmap público | tenant_id, product_id, title, status, vote_count |
roadmap_votes | Votos anônimos em itens | roadmap_item_id, email |
feature_requests | Sugestões de recursos da comunidade | tenant_id, roadmap_item_id, email, description, status |
changelog_entries | Notas de lançamento do produto | tenant_id, product_id, title, body, version, published_at |
notifications | Notificações in-app | tenant_id, user_id, type, title, message, data (JSON) |
webhook_logs | Logs de entrega de webhook de saída | tenant_id, url, event, payload (JSON), response_code |
data_deletion_requests | Rastreamento de exclusões LGPD/GDPR | tenant_id, requester_email, status, completed_at |
referral_codes | Códigos de indicação | tenant_id, code, reward_type, uses, max_uses |
referral_conversions | Rastreamento de conversões | referral_code_id, converted_tenant_id, reward_amount |
scheduled_report_logs | Log de entrega de relatórios | tenant_id, report_type, status, sent_at |
Tabelas do Sistema Laravel
| Tabela | Descrição |
|---|---|
migrations | Rastreamento de migrations |
password_reset_tokens | Tokens de redefinição de senha (com suporte a tenant) |
sessions | Sessões de usuário |
cache | Cache da aplicação |
jobs | Jobs da fila |
failed_jobs | Jobs da fila com falha |
Relacionamentos Principais
plans <---- tenants <---- users
|
|---- products <---- feedback_campaigns <---- feedback_submissions
| |
| +---- feedback_tags (M2M)
|
|---- roadmap_items <---- roadmap_votes
| <---- feature_requests
|
|---- changelog_entries
|---- team_members ---- users
|---- team_invitations
|---- api_keys
|---- notifications
+---- webhook_logs
Isolamento de Dados
Cada tabela com escopo de tenant possui:
- Chave estrangeira
tenant_idcomON DELETE CASCADE - Índice composto em
(tenant_id, created_at) - Escopo global
TenantScopepara filtragem automática
Quando um tenant é excluído, todos os seus dados são removidos em cascata automaticamente.