Skip to content

[planner] 하루 마감 API 연결 (daily_plan_finalize) #85

Description

@wngjs8114

배경

end_of_day_modal.html(FE1, #74)이 하루 종료 UI는 갖췄지만, eodSubmit 버튼은 아직 setTimeout으로 가짜 진행 애니메이션만 보여줄 뿐 실제 제출 로직이 없다. finalize_daily_plan() 서비스 함수는 이미 완성돼 있음.

작업 내용

  • planner:daily_plan_finalize (POST): 오늘의 DailyPlanfinalize_daily_plan()으로 마감 처리

progress_record(#73)와 동일하게 모달에서 즉시 반영되는 기능이라 JSON API로 구현.

API 계약 (초안)

POST /planner/daily-plans/finalize/
Request: {} (또는 mark_unrecorded_as_not_done 옵션 필요 여부 검토)
Response 성공(200): {
"needs_recovery": bool,
"recovery_group_id": str | null,
"redirect_url": str // needs_recovery=true면 recovery_compare, false면 dashboard
}
Response 실패(400/404/409): {"message": str}

확인 필요 사항

  • end_of_day_modal.html이 이미 "완료하지 못한 작업이 있으면 복구 방법을 선택할 수 있는 화면으로 안내해드릴게요"라고 안내하므로, mark_unrecorded_as_not_done=True를 기본값으로 고정할지 확인
  • finalize_daily_plan()이 반환하는 needs_recovery/recovery_plans(maintain_volume/core_focus)를 프론트에 어떻게 넘길지 — recovery_compare View가 아직 없어서(#82에서 화면만 진행 중), 일단 recovery_group_id만 넘기고 이동은 recovery_compare View가 만들어지면 그때 연결
  • #73(progress_record)에서 정한 "오늘 날짜 + 활성 시험기간만" 제한 원칙 동일 적용
  • DailyPlanAlreadyFinalizedError, FutureDailyPlanFinalizeError, IncompleteProgressError 각각 어떤 메시지/상태코드로 응답할지

이번 이슈 범위 밖

테스트

  • 정상 마감 (미완료 작업 없음) → needs_recovery=false
  • 미완료 작업 있음 → needs_recovery=true, 복구안 생성 확인
  • 오늘 아닌 계획 마감 시도 차단
  • 이미 마감된 계획 재마감 시도 시 거부
  • 진행 기록 없는 작업 있을 때 mark_unrecorded_as_not_done 정책대로 처리
  • 다른 사용자 계획 접근 차단

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions