API REST
Quadros de ideias
Os quadros onde os clientes votam, e as ideias deles.
GET /ideas/boards(tracker:read, admin ou dono da empresa): quadros de ideias, onde os clientes votam no que querem ver. Cada um comurl(o endereço público, que o cliente abre sem conta),published,ideasepending_suggestions(sugestões de clientes esperando a equipe).GET /ideas/boards/{id}(tracker:read),POST /ideas/boardsePATCH/DELETE /ideas/boards/{id}(tracker:write):{"title": "Ideias para o app", "intro": "...", "projects": ["MOB"], "published": true, "access": "link|restricted", "allow_list": ["@cliente.com.br", "[email protected]"], "allow_suggestions": true}. No PATCH, só o que vier muda;projectseallow_listtrocam a lista toda.link: qualquer um com o link vê, e votar pede o e-mail confirmado por código;restricted: só quem confirmar um e-mail da lista vê as ideias. O GET trazideas(publicadas, mais votadas primeiro, comstatusque o cliente vê,issue,votesecomments) epending_suggestions(comsuggested_by, o e-mail do cliente). Ideia de projeto que saiu do quadro some só da página pública.POST /ideas/boards/{id}/ideas(tracker:write): cria uma ideia publicada,{"title": "Exportar em PDF", "description": "...", "project": "MOB", "issue": "MOB-0012", "status": "under_review|planned|in_progress|released|closed"}. Comissue(de um projeto do quadro; semtitle, usa o da issue), o status segue o da issue; sem ela, valestatus. Quando o status muda para planned, in_progress, released ou closed, quem votou recebe um e-mail.GET /ideas/{id}(tracker:read; a ideia com os votos e os comentários, com o e-mail de quem escreveu),PATCH /ideas/{id}(os campos da criação, só o que vier muda;"issue": nulldesliga a issue;{"published": true}publica a sugestão de um cliente) eDELETE /ideas/{id}(exclui; é como se recusa uma sugestão) (tracker:write).POST /ideas/{id}/commentscom{"body": "..."}responde como a equipe (o cliente vê "Equipe <empresa>");DELETE /ideas/comments/{id}apaga um comentário.