Gerenciar listas de tarefas dentro de projetos - criar, editar, excluir e consultar listas


Visão Geral

Listas no Blue são contêineres para organizar tarefas dentro de um projeto. Cada lista pode conter várias tarefas e ajuda a estruturar o trabalho em grupos lógicos. As listas suportam posicionamento, bloqueio e controle de acesso baseado em funções.

Conceitos Chave

  • Cada projeto pode ter até 50 listas
  • As listas são ordenadas por posição (crescente)
  • As listas podem ser bloqueadas para evitar modificações
  • As listas respeitam permissões em nível de projeto e baseadas em funções
  • Listas excluídas são movidas para a lixeira (exclusão suave)

Consultas

Obter uma Lista Única

Recuperar uma lista de tarefas específica pelo ID.

query GetTodoList($id: String!) {
  todoList(id: $id) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    updatedAt
    project {
      id
      name
    }
    createdBy {
      id
      username
    }
  }
}

Obter Todas as Listas em um Projeto

Recuperar todas as listas de tarefas para um projeto específico.

query GetProjectLists($projectId: String!) {
  todoLists(projectId: $projectId) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    updatedAt
  }
}

Consulta Avançada de Listas

Consultar listas com filtragem, ordenação e paginação.

query SearchTodoLists($filter: TodoListsFilterInput!, $sort: [TodoListsSort!], $skip: Int, $take: Int) {
  todoListQueries {
    todoLists(filter: $filter, sort: $sort, skip: $skip, take: $take) {
      items {
        id
        uid
        title
        position
        isDisabled
        isLocked
        createdAt
        updatedAt
        project {
          id
          name
        }
      }
      pageInfo {
        hasNextPage
        hasPreviousPage
        total
      }
    }
  }
}

Mutations

Criar uma Lista

Criar uma nova lista de tarefas em um projeto.

mutation CreateTodoList($input: CreateTodoListInput!) {
  createTodoList(input: $input) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    project {
      id
      name
    }
  }
}

Exemplo:

mutation {
  createTodoList(input: {
    projectId: "project-123"
    title: "Sprint 1 Tasks"
    position: 1.0
  }) {
    id
    title
  }
}

Editar uma Lista

Atualizar as propriedades de uma lista de tarefas existente.

mutation EditTodoList($input: EditTodoListInput!) {
  editTodoList(input: $input) {
    id
    title
    position
    isLocked
    updatedAt
  }
}

Exemplo:

mutation {
  editTodoList(input: {
    todoListId: "list-123"
    title: "Sprint 1 - In Progress"
    position: 2.0
    isLocked: true
  }) {
    id
    title
    isLocked
  }
}

Excluir uma Lista

Excluir uma lista de tarefas (move para a lixeira).

mutation DeleteTodoList($input: DeleteTodoListInput!) {
  deleteTodoList(input: $input) {
    success
  }
}

Exemplo:

mutation {
  deleteTodoList(input: {
    projectId: "project-123"
    todoListId: "list-123"
  }) {
    success
  }
}

Marcar Lista como Concluída/Não Concluída

Marcar todas as tarefas em uma lista como concluídas ou não concluídas.

# Mark as done
mutation MarkListDone($todoListId: String!, $filter: TodosFilter) {
  markTodoListAsDone(todoListId: $todoListId, filter: $filter)
}

# Mark as undone
mutation MarkListUndone($todoListId: String!, $filter: TodosFilter) {
  markTodoListAsUndone(todoListId: $todoListId, filter: $filter)
}

Tipos de Entrada

CreateTodoListInput

Parâmetro Tipo Obrigatório Descrição
projectId String! ✅ Sim O ID do projeto onde a lista será criada
title String! ✅ Sim O nome da lista
position Float! ✅ Sim A posição da lista (para ordenação)

EditTodoListInput

Parâmetro Tipo Obrigatório Descrição
todoListId String! ✅ Sim O ID da lista a ser editada
title String Não Novo título para a lista
position Float Não Nova posição para a lista
isLocked Boolean Não Se a lista deve ser bloqueada

DeleteTodoListInput

Parâmetro Tipo Obrigatório Descrição
projectId String! ✅ Sim O ID do projeto (para verificação)
todoListId String! ✅ Sim O ID da lista a ser excluída

TodoListsFilterInput

Parâmetro Tipo Obrigatório Descrição
companyIds [String!]! ✅ Sim Filtrar por IDs de empresas
projectIds [String!] Não Filtrar por IDs de projetos específicos
ids [String!] Não Filtrar por IDs de listas específicas
titles [String!] Não Filtrar por títulos de listas
search String Não Pesquisar listas por título

Valores de Ordenação de TodoLists

Valor Descrição
title_ASC Ordenar por título em ordem crescente
title_DESC Ordenar por título em ordem decrescente
createdAt_ASC Ordenar por data de criação em ordem crescente
createdAt_DESC Ordenar por data de criação em ordem decrescente
updatedAt_ASC Ordenar por data de atualização em ordem crescente
updatedAt_DESC Ordenar por data de atualização em ordem decrescente
position_ASC Ordenar por posição em ordem crescente (padrão)
position_DESC Ordenar por posição em ordem decrescente

Tipos de Resposta

Tipo TodoList

Campo Tipo Descrição
id ID! Identificador único
uid String! Identificador amigável
position Float! Posição da lista para ordenação
title String! Nome da lista
isDisabled Boolean! Se a lista está desativada
isLocked Boolean Se a lista está bloqueada
createdAt DateTime! Timestamp de criação
updatedAt DateTime! Timestamp da última atualização
activity Activity Log de atividade associado
createdBy User Usuário que criou a lista
project Project! Projeto pai
todos [Todo!]! Tarefas nesta lista
todosCount Int! Número de tarefas

Tipo TodoListsPagination

Campo Tipo Descrição
items [TodoList!]! Array de listas de tarefas
pageInfo PageInfo! Informações de paginação

Permissões Necessárias

Permissões de Consulta

Operação Permissão Necessária
todoList Must be authenticated
todoLists Must be authenticated and in company
todoListQueries.todoLists Must be authenticated and in company

Permissões de Mutação

Operação Funções em Nível de Projeto Permitidas
createTodoList OWNER, ADMIN, MEMBER
editTodoList OWNER, ADMIN, MEMBER, CLIENT
deleteTodoList OWNER, ADMIN, MEMBER
markTodoListAsDone OWNER, ADMIN, MEMBER
markTodoListAsUndone OWNER, ADMIN, MEMBER

Nota: Usuários com a função CLIENT podem editar listas, mas não podem criá-las ou excluí-las. Usuários com funções VIEW_ONLY ou COMMENT_ONLY não podem criar, editar ou excluir listas.

Respostas de Erro

TodoListNotFoundError

{
  "errors": [{
    "message": "Todo list was not found.",
    "extensions": {
      "code": "TODO_LIST_NOT_FOUND"
    }
  }]
}

ProjectNotFoundError

{
  "errors": [{
    "message": "Project was not found.",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Erro de Máximo de Listas

{
  "errors": [{
    "message": "You have reached the maximum number of todo lists for this project.",
    "extensions": {
      "code": "INTERNAL_SERVER_ERROR"
    }
  }]
}

UnauthorizedError

{
  "errors": [{
    "message": "Unauthorized",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

Notas Importantes

  • Limite de Listas: Cada projeto pode ter um máximo de 50 listas
  • Exclusão Suave: Listas excluídas são movidas para a lixeira e podem ser potencialmente recuperadas
  • Gerenciamento de Posição: Ao criar listas, certifique-se de que as posições não conflitam. Use valores incrementais (1.0, 2.0, 3.0) para permitir inserção entre listas
  • Acesso Baseado em Funções: Listas podem ser ocultadas de certas funções usando permissões ProjectUserRoleTodoList
  • Webhooks: Criação, atualizações e exclusões de listas acionam webhooks se configurados
  • Rastreamento de Atividades: Todas as operações de lista são registradas no feed de atividades
  • Atualizações em Tempo Real: Alterações nas listas são publicadas via assinaturas para atualizações em tempo real

Operações Relacionadas

  • Use todos consulta para buscar tarefas dentro de uma lista
  • Use createTodo mutação para adicionar tarefas a uma lista
  • Use moveTodo mutação para mover tarefas entre listas
  • Inscreva-se nas alterações de lista usando subscribeToTodoList assinatura

Assistente de IA

As respostas são geradas usando IA e podem conter erros.

Como posso ajudá-lo?

Pergunte-me qualquer coisa sobre o Blue ou esta documentação.

Digite para enviar • Shift+Enter para nova linha • ⌘I para abrir