> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assessiq.digital/llms.txt
> Use this file to discover all available pages before exploring further.

# Organizações

> Como o sistema multi-tenant de organizações funciona no AssessIQ.

## O que são Organizações?

Uma **Organização** representa uma instituição ou empresa dentro da plataforma. Todo conteúdo — usuários, alunos, testes, turmas — pertence a uma organização.

Isso permite que múltiplas instituições usem a mesma instalação do AssessIQ com dados completamente isolados.

***

## Estrutura

```
Organização
├── Usuários (ADMIN, PROFESSOR)
├── Alunos
├── Professores (perfil)
├── Candidatos
├── Testes / Formulários
└── Submissões
```

***

## Planos de Organização

As organizações têm um campo `plan` que pode ser usado para controlar funcionalidades:

| Plano        | Descrição                           |
| ------------ | ----------------------------------- |
| `free`       | Plano gratuito com recursos básicos |
| `pro`        | Recursos avançados habilitados      |
| `enterprise` | Customizações e suporte dedicado    |

***

## Gerenciando Organizações

Somente `ADMIN` e `SUPER_ADMIN` podem gerenciar organizações.

**Acesso:** Menu lateral → **Admin → Organizações**

### Criar Nova Organização

1. Clique em **Nova Organização**
2. Preencha:
   * **Nome** — nome da instituição
   * **Slug** — identificador único (URL-friendly, ex.: `edufuturo`)
   * **Logo** — URL da imagem
   * **Plano** — free, pro ou enterprise
3. Confirme com **Salvar**

### Editar ou Desativar

Clique no menu de ações (⋮) da organização desejada para editar dados ou desativar a organização. Organizações desativadas continuam no banco com `isActive: false`.

***

## Vinculando Usuários a Organizações

Ao criar um usuário, é possível atribuí-lo diretamente a uma organização via o campo **Organização** no formulário de criação.

Para mover um usuário entre organizações, edite o usuário e altere o campo `organizationId`.

***

## Isolamento de Dados

Todas as queries do Prisma filtram por `organizationId` automaticamente via `getOrgId()`:

```ts theme={null}
import { getOrgId } from "@/lib/org";

const orgId = await getOrgId();
const students = await prisma.student.findMany({
  where: { organizationId: orgId },
});
```

<Note>
  `SUPER_ADMIN` pode visualizar dados de todas as organizações ao mesmo tempo. Os demais roles veem apenas a própria organização.
</Note>
