Mueva un registro a una lista diferente dentro del mismo proyecto o entre proyectos con copias y validaciones completas.


Mover Registro a Lista

La mutación moveTodo permite mover un registro a una lista diferente. Esta operación crea una copia completa del registro en la lista de destino y lo elimina de la lista de origen. Los registros se pueden mover dentro del mismo proyecto o entre diferentes proyectos (con los permisos apropiados).

Ejemplo Básico

mutation MoveTodo {
  moveTodo(
    input: {
      todoId: "todo_123abc"
      todoListId: "list_456def"
    }
  )
}

Ejemplo de Movimiento entre Proyectos

mutation MoveTodoAcrossProjects {
  moveTodo(
    input: {
      todoId: "todo_123abc"
      todoListId: "different-project-list_789xyz"
    }
  )
}

Parámetros de Entrada

MoveTodoInput

Parámetro Tipo Requerido Descripción
todoId String! ✅ Sí El ID del registro a mover
todoListId String! ✅ Sí El ID de la lista de destino

Respuesta

La mutación devuelve un valor Boolean!:

  • true - El registro fue movido exitosamente
  • Se lanzan errores en caso de fallo en lugar de devolver false

Qué se Mueve

Cuando se mueve un registro, los siguientes elementos se copian a la nueva ubicación:

  • Asignados - Todos los usuarios asignados
  • Listas de Verificación - Todos los elementos de la lista de verificación y su estado de finalización
  • Comentarios - Todos los comentarios y respuestas
  • Campos Personalizados - Todos los valores de campos personalizados
  • Descripción - Descripción completa del registro y formato
  • Fecha de Vencimiento - Fecha y hora de vencimiento original
  • Etiquetas - Todas las etiquetas asociadas
  • Acciones de Tareas - Todas las subtareas y elementos de acción
  • Archivos - Todos los archivos adjuntos (con manejo especial para movimientos entre proyectos)

Manejo de Posición

  • Los registros se posicionan automáticamente al final de la lista de destino
  • No puede especificar una posición personalizada - se calcula automáticamente
  • La posición se establece en la posición máxima actual + 65,535

Permisos Requeridos

Diferentes niveles de permisos tienen diferentes capacidades:

Rol de Usuario Mismo Proyecto Entre Proyectos Acceso a Archivos
OWNER ✅ Sí ✅ Sí All files
ADMIN ✅ Sí ✅ Sí All files
MEMBER ✅ Sí ❌ No Own files only

Requisitos de Permiso

  • Debe tener acceso OWNER, ADMIN, o MEMBER al proyecto de origen
  • Debe tener acceso al proyecto de destino
  • Los usuarios MEMBER no pueden mover registros entre diferentes proyectos
  • Ambos proyectos deben estar activos (no archivados)

Respuestas de Error

Registro No Encontrado

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

Lista No Encontrada

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

Permiso Denegado entre Proyectos

{
  "errors": [{
    "message": "You are not authorized.",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

Manejo de Archivos

Movimientos en el Mismo Proyecto

  • Los archivos se mueven directamente sin crear copias
  • Se preservan todos los permisos de archivo

Movimientos entre Proyectos

  • Se crean nuevas copias de archivos en el almacenamiento del proyecto de destino
  • Los archivos originales se eliminan de forma asíncrona después de una copia exitosa
  • Los permisos de archivo pueden actualizarse según la configuración del proyecto de destino
  • Los usuarios MEMBER solo pueden mover archivos que poseen

Efectos Secundarios

Mover un registro desencadena varias acciones automáticas:

  1. Registro de Actividad - Crea un registro de actividad que muestra el movimiento
  2. Notificaciones - Notifica a los miembros relevantes del proyecto
  3. Webhooks - Desencadena el evento de webhook handleTodoMoved
  4. Automatizaciones - Ejecuta automatizaciones configuradas para movimientos de registros
  5. Actualizaciones en Tiempo Real - Publica actualizaciones en vivo a todos los clientes conectados
  6. Actualizaciones de Gráficos - Actualiza gráficos y estadísticas del proyecto

Notas Importantes

  • Copia Completa: Todos los datos del registro se copian - no puede mover selectivamente solo ciertos elementos
  • Posición Automática: Los registros siempre se colocan al final de la lista de destino
  • Restricciones entre Proyectos: Los usuarios MEMBER no pueden mover registros entre proyectos
  • Limpieza Asíncrona: La limpieza de archivos ocurre en segundo plano para movimientos entre proyectos
  • Preserva el Historial: Se mantienen comentarios, actividad y auditorías
  • Eventos de Webhook: Las operaciones de movimiento desencadenan eventos de eliminación y creación para sincronización en tiempo real

Casos de Uso

Reorganización del Trabajo

Mueva registros entre listas para reorganizar la estructura del proyecto o las etapas del flujo de trabajo.

Transferencias entre Proyectos

Transfiera registros entre proyectos cuando el trabajo necesita moverse a un equipo o fase diferente.

Consolidación de Listas

Mueva registros al combinar o reestructurar listas de proyectos.

Asistente IA

Las respuestas son generadas por IA y pueden contener errores.

¿Cómo puedo ayudarte?

Pregúntame cualquier cosa sobre Blue o esta documentación.

Enter para enviar • Shift+Enter para nueva línea • ⌘I para abrir