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

# Gerenciar Departamentos

> Criar, atualizar e excluir departamentos

## Listar Departamentos

<Note>Requer perfil **Admin** ou **Owner**.</Note>

```bash theme={null}
GET /backend/departments
```

**Resposta (200):**

```json theme={null}
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "tenant_id": "d6b10acc-2307-413f-a4de-4c2edf3f9a70",
      "name": "Vendas",
      "description": "Equipe de vendas",
      "member_count": 5,
      "created_at": "2024-01-15T10:00:00Z",
      "updated_at": "2024-01-15T10:00:00Z"
    }
  ]
}
```

## Meus Departamentos

<Note>Acessível por **Operadores**. Retorna apenas os departamentos dos quais o usuário é membro.</Note>

```bash theme={null}
GET /backend/departments/my
```

## Criar Departamento

```bash theme={null}
POST /backend/departments
```

**Body:**

```json theme={null}
{
  "name": "Suporte",
  "description": "Equipe de suporte ao cliente"
}
```

| Campo         | Tipo   | Obrigatório | Descrição                                                    |
| ------------- | ------ | ----------- | ------------------------------------------------------------ |
| `name`        | string | Sim         | Nome do departamento (máx. 100 caracteres, único por tenant) |
| `description` | string | Não         | Descrição do departamento                                    |

**Resposta (201):**

```json theme={null}
{
  "id": "uuid",
  "tenant_id": "uuid",
  "name": "Suporte",
  "description": "Equipe de suporte ao cliente",
  "member_count": 0,
  "created_at": "2024-01-15T10:00:00Z",
  "updated_at": "2024-01-15T10:00:00Z"
}
```

## Atualizar Departamento

```bash theme={null}
PUT /backend/departments/{id}
```

**Body:**

```json theme={null}
{
  "name": "Suporte Premium",
  "description": "Equipe de suporte prioritário"
}
```

Todos os campos são opcionais no update. Se o novo nome já existir no tenant, retorna **409 Conflict**.

## Excluir Departamento

```bash theme={null}
DELETE /backend/departments/{id}
```

**Resposta:** 204 No Content

<Warning>
  Ao excluir um departamento, todas as referências em lead-channels e canais são removidas automaticamente (setadas como NULL).
</Warning>
