문제 상황
GET /api/calendar?month= 응답(CalendarItemResponse)에 개인 Todo 항목의 id·isDone이 없어, FE가 캘린더 화면에서 Todo 체크박스를 렌더링하거나 완료 토글(PATCH /api/todos/{todoId}/complete)을 호출할 방법이 없음.
완료 토글 API 자체는 이미 구현되어 있음(TodoResponse엔 id·isDone 둘 다 존재) — 월간 통합조회(GET /api/calendar) 응답에서만 빠져있는 상태.
재현/근거
CalendarItemResponse.java — type/title/tag/startDate/endDate뿐, id·isDone 없음
CalendarItem.java — 동일하게 없음
CalendarQueryService.toTodoItem() — PersonalTodo에서 id·isDone을 꺼내지 않고 버림
- 대조군
TodoResponse.java(단건 API용)는 id·isDone 둘 다 정상 포함
처리 방향
CalendarItem·CalendarItemResponse에 id(nullable Long, PROJECT/ACTION은 null)·isDone(nullable Boolean, TODO만 값 존재) 필드 추가
CalendarQueryService의 toProjectItem/toActionItem/toTodoItem 매핑 갱신
- 기존 응답 필드는 그대로 유지(breaking change 아님, 필드 추가만)
참고
사내 태완님 캘린더 권한별 요구사항 정리에서 지적된 5개 항목 중 BE 코드로 실제 확인된 이슈.
문제 상황
GET /api/calendar?month=응답(CalendarItemResponse)에 개인 Todo 항목의id·isDone이 없어, FE가 캘린더 화면에서 Todo 체크박스를 렌더링하거나 완료 토글(PATCH /api/todos/{todoId}/complete)을 호출할 방법이 없음.완료 토글 API 자체는 이미 구현되어 있음(
TodoResponse엔id·isDone둘 다 존재) — 월간 통합조회(GET /api/calendar) 응답에서만 빠져있는 상태.재현/근거
CalendarItemResponse.java—type/title/tag/startDate/endDate뿐,id·isDone없음CalendarItem.java— 동일하게 없음CalendarQueryService.toTodoItem()—PersonalTodo에서id·isDone을 꺼내지 않고 버림TodoResponse.java(단건 API용)는id·isDone둘 다 정상 포함처리 방향
CalendarItem·CalendarItemResponse에id(nullable Long, PROJECT/ACTION은 null)·isDone(nullable Boolean, TODO만 값 존재) 필드 추가CalendarQueryService의toProjectItem/toActionItem/toTodoItem매핑 갱신참고
사내 태완님 캘린더 권한별 요구사항 정리에서 지적된 5개 항목 중 BE 코드로 실제 확인된 이슈.