> ## 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.

# Formulários (Testes)

> Endpoints para criação e gerenciamento de formulários de avaliação.

## GET /api/forms

Lista todos os formulários do usuário autenticado.

**Autenticação:** Obrigatória

### Query Params

| Param        | Tipo    | Descrição                        |
| ------------ | ------- | -------------------------------- |
| `page`       | number  | Página (padrão: 1)               |
| `limit`      | number  | Itens por página (padrão: 20)    |
| `search`     | string  | Busca por título                 |
| `published`  | boolean | Filtrar por status de publicação |
| `isTemplate` | boolean | Listar apenas templates          |

### Resposta

```json theme={null}
{
  "forms": [
    {
      "id": "form_id",
      "title": "Avaliação Funcional",
      "description": "...",
      "category": "Psicologia",
      "isPublished": true,
      "isTemplate": false,
      "createdAt": "2026-01-15T10:00:00.000Z",
      "_count": { "questions": 25, "submissions": 12 }
    }
  ],
  "total": 45,
  "page": 1
}
```

***

## POST /api/forms

Cria um novo formulário.

### Body (JSON)

```json theme={null}
{
  "title": "Nova Avaliação",
  "description": "Descrição opcional",
  "category": "Psicologia",
  "type": "TEST",
  "targetAudience": "STUDENT",
  "isPublished": false,
  "scoreRanges": [
    { "min": 0, "max": 30, "label": "Abaixo", "color": "#EF4444" },
    { "min": 31, "max": 100, "label": "Adequado", "color": "#10B981" }
  ]
}
```

***

## GET /api/forms/:id

Retorna um formulário pelo ID, incluindo todas as questões e opções.

***

## PUT /api/forms/:id

Atualiza um formulário existente. Aceita os mesmos campos do `POST`.

***

## DELETE /api/forms/:id

Soft delete do formulário. O registro permanece no banco com `deletedAt` preenchido.
