contentfacultatif | string | max 500 |
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.
|
videoMediaIdfacultatif | string (uuid) | Drop: vídeo gravado no navegador, enviado por `POST /api/media/upload-url` com a finalidade `statusVideo` (até 350 MB) e confirmado em `POST /api/media/confirm`, no mesmo space do post curto. Com ele, `content` pode ir vazio. Só quem enviou o vídeo pode usá-lo (de outra pessoa, de outra finalidade ou de outro space: 400 com `errors[0].param = "videoMediaId"`; id desconhecido ou de outra comunidade: 404; já usado: 409). No `PUT`, outro id troca o vídeo e `null` remove; o anterior é apagado, com as versões convertidas. A resposta e as listas trazem `videoMediaId`; o player pede o link assinado em `GET /api/media/{id}/url`, que segue a leitura do post curto (pendente ou rejeitado, só o autor e a equipe). Só quem aparece como autor do item adiciona ou troca o vídeo: a equipe, editando ou publicando em nome de outra pessoa, só pode remover com `null` (senão 403 com `errors[0].param = "videoMediaId"`).
|
spaceIdfacultatif | string (uuid) | |
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.
|
isPriorityfacultatif | boolean | Owner e admin. |
visibilityfacultatif | public | members | plan | private | `plan`: só quem tem assinatura ativa (e a equipe) vê. |
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.
|