# '오늘 할일' 자동 설정을 생성일 기준으로 변경 (할일 중복 표시 수정)

- 날짜: 2026-09-26 (KST)
- 대상: `lib/widgets/todo_edit_sheet.dart` (`auto_schedule_app`·`day_plan_app` 동일 반영)

## 문제
할일보기에서 오늘이 아닌 칸(예: 29일)을 골라 할일을 만들면 29일 칸과 오늘 칸에 같은 할일이 2개로 보였다.
- 원인: 할일보기의 + 버튼이 `defaultMyDay: true`를 넘기고, 편집 시트가 날짜와 무관하게 `isMyDay = true`로 저장.
- 오늘 목록/오늘 칸은 `is_my_day = 1`을 모두 포함하므로, 생성일(29일) 칸 + 오늘 칸 두 곳에 표시됨(DB 행은 1건).

## 원칙
할일·일정·기록은 모두 생성일(고른 칸) 한 곳에만 만들어진다.
- 일정: `created_at` 날짜 칸에만 표시 — 기존 정상.
- 기록: 고른 날짜(`due_date`) 칸에만 표시 — 기존 정상.
- 할일: 아래와 같이 '오늘 할일' 자동 설정을 생성일에 맞춤.

## 변경
- `_syncTodayTask()` 추가: 생성일이 오늘이면 '오늘 할일' 켜고, 아니면 끈다.
- 적용 시점
  - 신규 할일 폼을 열 때(`initState`) — `defaultMyDay` 값은 더 이상 쓰지 않음.
  - 유형 전환으로 할일이 될 때(`_switchKind`) — 기한에서 옮긴 날짜를 항상 생성일로 설정 후 동기화.
  - 생성일을 직접 바꿀 때(`_pickCreated`, 할일만).
- `_save()` 안전장치: 신규 할일이 생성일≠오늘인데 '오늘 할일'이 켜져 있으면 끄고 저장.
- 오늘 칸에서 만들면 기존처럼 '오늘 할일'이 켜진다. 사용자가 스위치로 직접 켜면 생성일이 오늘로 이동(기존 동작).
- '오늘 할일' 스위치(`_setTodayTask`)의 기한 처리
  - 켤 때: 기한이 원래 생성일과 같으면(예: 29일 생성·기한 29일) 기한도 오늘로 함께 옮긴다(기존: 기한 비움).
  - 끌 때: 생성일을 원래 날짜로 되돌리고, 기한이 그보다 빠르면 기한도 원래 날짜로 되돌린다
    ('기한은 생성일보다 빠를 수 없음' 저장 오류 방지).
- 기한 지난 미완료 할일이 오늘 칸에 '지연'으로 이월 표시되는 기능은 그대로 둠.

## 참고
- 이미 중복으로 저장된 할일은 열어서 '오늘 할일'을 끄면 오늘 칸에서 사라진다.

## 검증
- `flutter analyze lib/widgets/todo_edit_sheet.dart`: 두 앱 모두 No issues found.
