# Exportação e métricas

**Para quem:** produtor, organizador, equipe de marketing  
**Última revisão:** 2026-07-13  
**Rotas relacionadas:** `/seller/events/[id]`, `/seller/events/[id]/export`, `/seller/organizations/[id]/export`

---

## O que você consegue fazer

- Acompanhar vendas em tempo real no dashboard do evento
- Exportar stories para Instagram
- Exportar QR codes (crowdfunding, bar)
- Baixar lista de interessados em Excel
- Gerar e compartilhar links de cortesia

---

## Pré-requisitos

- Evento ou organização criada
- Para métricas de venda: pelo menos um ingresso vendido ou interesse registrado
- Para exports visuais: navegador com suporte a download/compartilhamento

---

## Dashboard de vendas

### Acessar

No card do evento em `/seller/events`, clique em **dashboard**.

Rota: `/seller/events/{slug ou id}`

Guia completo das seções (Resumo, Vendas, Financeiro, Público, etc.): [07 — Dashboards](07-dashboards.md).

### O que você vê (resumo)

- Vendas em tempo real (atualiza via Convex)
- Métricas de ingressos vendidos por lote
- Gráficos e indicadores no `EventDashboard`

Útil para acompanhar o desempenho antes e durante o evento.

### Dashboard da organização

Rota: `/seller/dashboard/[id]` (ou `/seller/dashboard/curation/[id]` para curadorias)

Visão agregada de todos os eventos e métricas da org. Detalhes em [07 — Dashboards](07-dashboards.md).

---

## Exportações visuais

### Story Instagram do evento

| Item | Detalhe |
|------|---------|
| **Rota** | `/seller/events/[id]/export` |
| **Motion (padrão)** | Story 10s em 9:16 quando há lineup (6s descrição + 4s artistas); 7s sem lineup. Até 4 artistas com foto entram como cards; mais que isso, só texto. |
| **Imagem** | PNG estático via `html2canvas` (`EventStoryCard`) |
| **Ações** | Download ou compartilhar nativo (vídeo ou PNG) |

Na página pública do evento, o menu de enviar oferece **compartilhar story animado** e **compartilhar imagem**. Se o evento tem lineup, os primeiros 6s mostram a descrição e os 4s seguintes os artistas (com foto quando há até 4 retratos).

### Story da agenda da organização

| Item | Detalhe |
|------|---------|
| **Rota** | `/seller/organizations/[id]/export` |
| **Conteúdo** | Agenda visual com próximos eventos (`OrganizationAgendaStories`) |

### QR do crowdfunding

| Item | Detalhe |
|------|---------|
| **Rota** | `/seller/events/[id]/crowdfunding/export` |
| **Pré-requisito** | Evento com `crowdfundingId` configurado |
| **Componente** | `CrowdfundingQrExport` |

### QR do bar

| Item | Detalhe |
|------|---------|
| **Rota** | `/seller/organizations/bar/[id]/export` |
| **Conteúdo** | QR para consumo no bar digital |

---

## Exportação de dados

### Lista de interessados (Excel)

No card expandido do evento em `/seller/events`:

1. Expanda o evento
2. Use **ExportUserEmails** na seção de produção
3. Baixe `.xlsx` com colunas: Nome, Email, URL do perfil
4. Opcional: enviar lembrete em massa via `sendManualBulkReminders`

Útil para remarketing e comunicação pré-evento.

### Exportação de participantes do evento

Rota: `/seller/events/[id]/export` (dados) e fluxos de export em `/seller/organizations/[id]/export`.

### Exportação de bar

Rota: `/seller/organizations/bar/[id]/export` — dados e QR do bar.

### Exportação de crowdfunding

Rota: `/seller/events/[id]/crowdfunding/export` — contribuições e QR.

---

## Cortesias

No card expandido do evento, use **GenerateWildcard** (cortesias):

- Gera links individuais (um uso cada) ou um link coletivo com N cortesias (uma por pessoa)
- Copiar, compartilhar no WhatsApp, pausar ou encerrar
- **baixar planilha**: `.xlsx` com todos os links, status, quem resgatou e quando (não cria convites)
- Convidado acessa via `/tickets/courtesy-invite/[token]` (individual) ou `/tickets/courtesy-pool/[token]` (coletivo)

---

## Métricas globais (admin)

Usuários `admin` têm acesso ao painel global em componentes `AdminPanel` com métricas da plataforma inteira. Isso é separado do dashboard de produtor.

---

## O que acontece nos bastidores

- Dashboard usa queries Convex reativas — atualiza sem refresh manual
- Stories são renderizadas no cliente: o PNG usa `html2canvas`, o story em motion é gravado no navegador (WebCodecs / MP4)
- Relatório diário automatizado da plataforma roda via `npm run daily-report` (Gemini) — escopo admin, não por evento
- Export de e-mails usa dados de interessados/favoritos vinculados ao evento

---

## Problemas comuns

| Sintoma | Causa provável | O que fazer |
|---------|----------------|-------------|
| Dashboard zerado | Sem vendas ainda | Aguarde primeiras compras ou confira se vendas estão abertas |
| Export crowdfunding indisponível | Sem campanha vinculada | Configure crowdfunding no evento primeiro |
| Story com layout quebrado | Resolução do browser | Tente em desktop com zoom 100% |
| Excel vazio | Sem interessados registrados | Divulgue o evento para gerar interesse |
| Cortesia não funciona | Link expirado ou já usado | Gere novo wildcard |

---

## Referências de código (time interno)

- `app/seller/events/[id]/page.tsx` — dashboard do evento
- `components/seller/dashboard/EventDashboard.tsx` — widgets de métricas
- `components/seller/dashboard/OrganizationDashboard.tsx` — dashboard da org
- `app/seller/events/[id]/export/page.tsx` — studio de story do evento
- `app/seller/organizations/[id]/export/page.tsx` — agenda da org
- `components/organization/EventStoryStudio.tsx` — motion 7s + PNG
- `components/organization/EventStories.tsx` — `EventStoryCard`
- `components/seller/ExportUserEmails.tsx` — Excel de interessados
- `components/seller/GenerateWildcard.tsx` — cortesias
- `convex/events.ts` — `getEventAnalytics`, `getSellerEvents`
