동일한 프로젝트 내 또는 프로젝트 간에 레코드를 포괄적으로 복사하고 검증하여 다른 목록으로 이동합니다.


레코드를 목록으로 이동

moveTodo 변형은 레코드를 다른 목록으로 이동할 수 있게 해줍니다. 이 작업은 대상 목록에 레코드의 완전한 복사본을 생성하고 원본 목록에서 제거합니다. 레코드는 동일한 프로젝트 내에서 또는 서로 다른 프로젝트 간에 이동할 수 있습니다(적절한 권한이 있는 경우).

기본 예제

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

프로젝트 간 이동 예제

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

입력 매개변수

MoveTodoInput

매개변수 유형 필수 설명
todoId String! ✅ 예 이동할 레코드의 ID
todoListId String! ✅ 예 대상 목록의 ID

응답

변형은 Boolean! 값을 반환합니다:

  • true - 레코드가 성공적으로 이동되었습니다
  • 실패 시 false를 반환하는 대신 오류가 발생합니다

이동되는 항목

레코드가 이동될 때 다음 요소가 새 위치로 복사됩니다:

  • 담당자 - 모든 할당된 사용자
  • 체크리스트 - 모든 체크리스트 항목 및 완료 상태
  • 댓글 - 모든 댓글 및 답글
  • 사용자 정의 필드 - 모든 사용자 정의 필드 값
  • 설명 - 전체 레코드 설명 및 형식
  • 기한 - 원래 기한 및 시간
  • 태그 - 모든 관련 태그
  • 할 일 작업 - 모든 하위 작업 및 작업 항목
  • 파일 - 모든 파일 첨부(프로젝트 간 이동 시 특별 처리)

위치 처리

  • 레코드는 자동으로 대상 목록의 에 위치합니다
  • 사용자 정의 위치를 지정할 수 없습니다 - 자동으로 계산됩니다
  • 위치는 현재 최대 위치 + 65,535로 설정됩니다

필수 권한

다양한 권한 수준은 서로 다른 기능을 가지고 있습니다:

사용자 역할 동일 프로젝트 프로젝트 간 파일 액세스
OWNER ✅ 예 ✅ 예 All files
ADMIN ✅ 예 ✅ 예 All files
MEMBER ✅ 예 ❌ 아니오 Own files only

권한 요구 사항

  • 원본 프로젝트에 대한 OWNER, ADMIN 또는 MEMBER 액세스 권한이 있어야 합니다
  • 대상 프로젝트에 대한 액세스 권한이 있어야 합니다
  • MEMBER 사용자는 서로 다른 프로젝트 간에 레코드를 이동할 수 없습니다
  • 두 프로젝트 모두 활성 상태여야 합니다(보관되지 않음)

오류 응답

레코드를 찾을 수 없음

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

목록을 찾을 수 없음

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

프로젝트 간 권한 거부

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

파일 처리

동일 프로젝트 이동

  • 파일은 복사본을 생성하지 않고 직접 이동됩니다
  • 모든 파일 권한이 유지됩니다

프로젝트 간 이동

  • 대상 프로젝트의 저장소에 파일의 새 복사본이 생성됩니다
  • 원본 파일은 성공적인 복사 후 비동기적으로 삭제됩니다
  • 파일 권한은 대상 프로젝트 설정에 따라 업데이트될 수 있습니다
  • MEMBER 사용자는 자신이 소유한 파일만 이동할 수 있습니다

부작용

레코드를 이동하면 여러 자동 작업이 트리거됩니다:

  1. 활동 기록 - 이동을 보여주는 활동 기록을 생성합니다
  2. 알림 - 관련 프로젝트 구성원에게 알립니다
  3. 웹훅 - handleTodoMoved 웹훅 이벤트를 트리거합니다
  4. 자동화 - 레코드 이동을 위해 구성된 자동화를 실행합니다
  5. 실시간 업데이트 - 모든 연결된 클라이언트에 실시간 업데이트를 게시합니다
  6. 차트 업데이트 - 프로젝트 차트 및 통계를 업데이트합니다

중요한 참고 사항

  • 완전 복사: 모든 레코드 데이터가 복사됩니다 - 특정 요소만 선택적으로 이동할 수 없습니다
  • 자동 위치: 레코드는 항상 대상 목록의 끝에 배치됩니다
  • 프로젝트 간 제한: MEMBER 사용자는 프로젝트 간에 레코드를 이동할 수 없습니다
  • 비동기 정리: 파일 정리는 프로젝트 간 이동을 위해 백그라운드에서 발생합니다
  • 이력 보존: 댓글, 활동 및 감사 추적이 유지됩니다
  • 웹훅 이벤트: 이동 작업은 실시간 동기화를 위한 삭제 및 생성 이벤트를 트리거합니다

사용 사례

작업 재조정

프로젝트 구조 또는 작업 흐름 단계를 재조정하기 위해 목록 간에 레코드를 이동합니다.

프로젝트 간 전송

작업이 다른 팀이나 단계로 이동해야 할 때 프로젝트 간에 레코드를 전송합니다.

목록 통합

프로젝트 목록을 결합하거나 재구성할 때 레코드를 이동합니다.

AI 어시스턴트

응답은 AI를 사용하여 생성되며 오류가 포함될 수 있습니다.

어떻게 도와드릴까요?

Blue 또는 이 문서에 대해 궁금한 점이 있으면 무엇이든 물어보세요.

전송하려면 Enter • 새 줄을 추가하려면 Shift+Enter • ⌘I를 눌러 열기