spaceIdfacultatif | string (uuid) | Valid space ID required if provided |
titlefacultatif | string | Title cannot be empty |
publishedAtfacultatif | string (date-time) | Data de publicação (ISO 8601). Só owner e admin (e o SuperAdmin) podem enviar; outros papéis recebem 403 com `errors[0].param = "publishedAt"`. Precisa ser passada ou agora: no futuro, 400. Sem o campo, a data não muda. Mais de 5 minutos no passado, o post entra em silêncio (sem pontos de engajamento, fora do bloco de novidades dos e-mails e sem o selo de novo). A resposta e as listas trazem `publishedAt`, e o feed ordena por ele; `createdAt` continua sendo o momento real da gravação.
|
authorMemberIdfacultatif | string (uuid) | Corrige o autor: o post passa a ser desse perfil, como se publicado em nome dele (em silêncio, fora dos destaques e sem o selo de novo). Mesmas regras da criação: só owner e admin (e o SuperAdmin), 403 com `errors[0].param = "authorMemberId"` para outros papéis; perfil de outra comunidade ou removido, 404; o autor novo e o atual (se não for você) precisam ter papel abaixo do seu (SuperAdmin age sobre qualquer um), senão 403. Devolver o post a si mesmo mantém o silêncio se ele já era em nome de outro, importado ou retroativo. Fica registrado no log da comunidade.
|
publishAtfacultatif | string (date-time) | Reagendar um post agendado (`schedule.status` `scheduled`, ou `failed`, que volta a esperar). Autor, quem agendou, owner, admin, moderador, financeiro e SuperAdmin (senão 403 `forbidden`); post já publicado: 409 `notScheduled`. Mesmas regras de data da criação. Num post agendado, a data muda só por aqui: `publishedAt` dá 400 `useReschedule`. Em status, `publishAt` sozinho no corpo responde `data: { id, schedule }`.
|
commentsDisabledfacultatif | boolean | Desliga (`true`) ou religa (`false`) os comentários. Só o autor, owner, admin, moderador e SuperAdmin (outros papéis, inclusive financeiro: 403 com `errors[0].param = "commentsDisabled"`). Enviado **sozinho** no corpo, só troca a chave: não reabre a moderação nem conta como edição, e o moderador pode fazê-lo em post de outra pessoa; a resposta é `data: { id, commentsDisabled, canToggleComments }`. Valor que não é booleano: 400. Com comentários desligados, ninguém comenta (403 `comments_closed`), nem a equipe; reações continuam.
|
tagsfacultatif | string[] | As tags do post, como devem aparecer. Cada uma é aparada, perde o `#` da frente e os espaços repetidos; vazias saem e repetidas (sem diferença de maiúscula e acento) ficam uma vez, na ordem enviada. No máximo 10 tags de até 40 caracteres: acima disso, ou com item que não é texto, 400 com `errors[0].param = "tags"`. No `PUT`, a lista substitui a anterior; `[]` ou `null` limpa. A resposta e as listas trazem `tags` (sempre um array), e `?tag=` em `GET /api/feed` e `GET /api/content` filtra por uma delas.
|