# Organização

**Para quem:** produtor, organizador, curador, escola  
**Última revisão:** 2026-07-13  
**Rotas relacionadas:** `/seller`, `/seller/new-organization`, `/seller/new-curation`, `/hub/seller/new-school`, `/seller/dashboard/[id]`

---

## O que você consegue fazer

- Criar e editar perfil da organização (casa, produtora, curadoria ou escola)
- Acessar dashboard com métricas
- Gerenciar equipe (colaboradores)
- Configurar bar, loja e outras extensões conforme o tipo

---

## Pré-requisitos

- Conta ativa com role adequada (ver [Onboarding](01-onboarding.md))
- Stripe Connect configurado para vender ingressos (produtoras e casas)

---

## Tipos de organização

O tipo é definido por **flags booleanas**, não por um campo único:

| Tipo | Flag no banco | Slug prefix | Label na UI |
|------|---------------|-------------|-------------|
| **Casa** (venue) | `isVenue: true` | `prod-` | casa |
| **Produtora** | todas false | `prod-` | produtora |
| **Curadoria** | `isCuration: true` | `curation-` | curadoria |
| **Escola** | `isSchool: true` | `school-` | escola |

Ordem de resolução no código: school → venue → curation → producer (default).

---

## Passo a passo — Criar organização

### Casa ou produtora

1. Acesse `/seller/new-organization?type=venue` (casa) ou `?type=producer` (produtora)
2. Preencha nome, descrição, imagem e demais campos do formulário
3. Salve — a org é criada com slug `prod-{nome}-{4dígitos}`

### Curadoria

1. Acesse `/seller/new-curation`
2. Preencha o formulário de curadoria
3. Slug gerado: `curation-{nome}-{4dígitos}`

### Escola

1. Acesse `/hub/seller/new-school`
2. Preencha dados da escola
3. Slug gerado: `school-{nome}-{4dígitos}`

Formulário compartilhado: `OrganizationForm` → mutation `api.organizations.create`.

---

## Passo a passo — Gerenciar organização

### Hub principal

`/seller` lista todas as suas organizações via `OrganizationsPanel` e `OrganizationCard`.

Visão geral do hub, mapa de rotas e funções do dia a dia: [00 — Hub do produtor](00-hub-do-produtor.md).

### Editar perfil

| Tipo | Rota de edição |
|------|----------------|
| Casa, produtora, escola | `/seller/organizations/[id]/edit` |
| Curadoria | `/seller/organizations/curation/[id]/edit` |

### Dashboard

| Tipo | Rota |
|------|------|
| Casa / produtora / escola | `/seller/dashboard/[id]` |
| Curadoria | `/seller/dashboard/curation/[id]` |

O dashboard mostra métricas em tempo real (vendas, eventos, engajamento).

### Página pública

Cada org tem página pública em `https://subcena.com/{slug}`.

---

## Equipe e colaboradores

No card da organização (`OrganizationCard`), o dono pode:

- Convidar colaboradores
- Definir roles por org: `admin`, `manager`
- Remover membros

| Role na org | Permissões |
|-------------|------------|
| **owner** | Dono (`organization.userId`) — acesso total |
| `admin` | Gestão completa da equipe |
| `manager` | Criar eventos, métricas, editar perfil |

Colaboradores **não** substituem o dono no Stripe — pagamentos continuam vinculados ao `stripeConnectId` do usuário dono.

---

## Recursos por tipo

| Recurso | Casa | Produtora | Curadoria | Escola |
|---------|------|-----------|-----------|--------|
| Eventos próprios | Sim | Sim | Eventos curados | Aulas |
| Bar digital | Sim | — | — | — |
| Loja | Sim | Sim | — | — |
| Crowdfunding | Sim | Sim | — | — |
| Programa fidelidade | Sim | — | — | — |
| Instrutores | — | — | — | `/hub/seller/instructors` |

---

## Status da organização

| Status | Significado |
|--------|-------------|
| `active` | Operando normalmente |
| `inactive` | Inativa |
| `suspended` | Suspensa pela plataforma |

---

## O que acontece nos bastidores

- O `userId` da org é quem criou; eventos criados por colaboradores ficam vinculados ao dono da org
- Seguidores da org recebem push quando um evento público novo é publicado
- Curadorias têm fluxo de ciclos (`curatorCycles`) separado de eventos de produção direta

---

## Problemas comuns

| Sintoma | Causa provável | O que fazer |
|---------|----------------|-------------|
| Não consigo criar evento | Stripe do dono inativo | Dono deve completar `/guides` |
| Colaborador não vê org | Não foi adicionado à equipe | Dono adiciona via OrganizationCard |
| Dashboard vazio | Sem eventos/vendas ainda | Crie e publique um evento |
| Tipo errado na UI | Flags conflitantes | Escola/venue/curation têm prioridade na resolução |

---

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

- `components/organization/OrganizationForm.tsx` — formulário de criação
- `components/organization/OrganizationCard.tsx` — ações e tipo
- `components/organization/OrganizationsPanel.tsx` — lista no seller
- `components/seller/dashboard/OrganizationDashboard.tsx` — dashboard
- `convex/organizations.ts` — CRUD e colaboradores
- `convex/schema/organizations.ts` — schema e flags
