languageopcional | string | |
subjectopcional | string | max 300 |
preheaderopcional | string | max 300 |
introopcional | string | |
blocksopcional | object[] | |
blocks[].typeobrigatório | text | button | image | latestPosts | upcomingEvents | course | event | product | newCourses | newClassifieds | |
blocks[].htmlopcional | string | Só em `text`. HTML rico, sanitizado como nos posts. `{{nome}}` vira o primeiro nome de cada pessoa. |
blocks[].textopcional | string | Só em `button`. · max 80 |
blocks[].urlopcional | string | Em `button` (destino) e `image` (endereço; use o de `POST /api/upload/campaigns/image` ou outro https). Só http ou https. |
blocks[].altopcional | string | Só em `image`. · max 200 |
blocks[].countopcional | integer | Em `latestPosts`, `upcomingEvents`, `newCourses` e `newClassifieds`: quantos itens. · ≥ 1, ≤ 10 |
blocks[].spaceIdopcional | string (uuid) | Em `latestPosts`: o espaço de conteúdo (nulo = todos os abertos). |
blocks[].withinDaysopcional | integer | Em `upcomingEvents`: janela a partir do dia do envio. · ≥ 1, ≤ 90 |
blocks[].headingopcional | string | Em `latestPosts` e `upcomingEvents`: título da seção (padrão traduzido). · max 80 |
blocks[].courseIdsopcional | string (uuid)[] | Em `course`: de 1 a 6 cursos, na ordem em que aparecem. Ver `productIds`. |
blocks[].eventIdsopcional | string (uuid)[] | Em `event`: de 1 a 6 eventos, na ordem em que aparecem. Ver `productIds`. |
blocks[].productIdsopcional | string (uuid)[] | Em `product`: de 1 a 6 produtos, sem repetidos, na ordem em que aparecem. Um item mostra o cartão de largura inteira; dois ou mais viram uma grade de 2 por linha no computador e 1 por linha no celular. Ao salvar, todos precisam ser visíveis a todos (senão 422 em `blocks[i]`); no envio, o que deixou de ser visível some e o bloco sem nenhum item some inteiro. Lista inválida (vazia, mais de 6, repetida, id malformado) devolve 422 em `blocks[i].productIds`. Vale igual para `eventIds` e `courseIds`.
|
blocks[].courseIdopcional | string (uuid) | Em `course`: forma antiga, de um curso só (equivale a `courseIds` com um item). Na resposta, espelha o primeiro de `courseIds`. |
blocks[].eventIdopcional | string (uuid) | Em `event`: forma antiga, de um evento só (equivale a `eventIds` com um item). Na resposta, espelha o primeiro de `eventIds`. |
blocks[].productIdopcional | string (uuid) | Em `product`: forma antiga, de um produto só (equivale a `productIds` com um item). Se `productIds` vier junto, vale a lista. Na resposta, espelha o primeiro de `productIds`. |
updatedAtopcional | string (date-time) | |