## Feature Issue 📌 TODO처럼 하위 태스크도 드래그앤드랍으로 순서를 바꿀 수 있게 합니다. 변경한 순서는 **해당 날짜에만** 적용됩니다. - 날짜별 순서는 `subtask_completions`에 `sort_order`(nullable) 컬럼을 추가해 저장합니다. 값이 없으면 `subtasks.sort_order`(기본 순서)를 따릅니다. - 새 API: `PATCH /api/v1/todos/{todoId}/subtasks/{subtaskId}/order` (`{ newIndex, date }`) - 완료된 하위 태스크는 순서를 변경할 수 없고, 조회 시 미완료 항목 아래에 정렬됩니다. - `PATCH /api/v1/todos/{todoId}`는 하위 태스크의 내용 수정·추가·삭제만 처리하고 기존 순서는 바꾸지 않습니다. 새 항목은 맨 끝에 추가됩니다. <br> ## Todo ✔️ - [ ] `SubtaskCompletion`에 nullable `sort_order` 컬럼 추가 - [ ] `SubtaskReorderer`로 날짜별 순서 재정렬 로직 구현 (인스턴스·하위 태스크 행 확보, 완료 항목 순서 변경 차단) - [ ] 하위 태스크 순서 변경 API, 요청·응답 DTO, 성공·에러 코드, `TodoControllerDocs` 추가 - [ ] TODO 상세·홈·포커스 조회에 날짜별 하위 태스크 순서 반영 - [ ] `Todo.subtasks` 기본 순서 정렬(`@OrderBy`) 보장 - [ ] TODO 수정 API에서 하위 태스크 배열 순서로 기본 순서를 덮어쓰지 않도록 변경
Activity