You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
refactor(setting): 수신자 저장·전달조건 정책을 UseCase로 분리한다 #1691
현재 ReceiverEditViewModel과 DeliveryConditionViewModel에 있는 확정된 저장 정책을 setting domain UseCase로 분리한다. 선행 #1429, #1739의 좁은 저장소 계약을 적용한 PR #2123 위에서 현재 소비자를 직접 연결한다.
구현 범위
UpdateReceiverInfoUseCase가 기본정보 저장 후 인사말을 저장하고 성공, 기본정보 요청 실패, 기본정보 성공 후 인사말 요청 실패를 구분한다.
기존 Throwable 실패 범위와 원인 객체 및 취소 전파를 보존한다. 두 쓰기 사이 취소를 확인해 취소된 작업이 인사말 저장을 시작하지 않게 한다.
UpdateTimeLetterDeliveryConditionUseCase가 다른 콘텐츠의 조건과 기존 상태·시각 정보를 보존하며 TIME_LETTER 수정, 누락 시 ACTIVE 생성, RECEIVER_REQUEST의 기간 제거를 수행한다.
두 UseCase는 UserReceiverRepository만 사용하고 현재 ViewModel은 로딩, 입력 검증, 중복 저장 방지, 오류 문구, 성공 이벤트를 유지한다.
저장 순서, 부분 실패, 취소, Throwable 범위, 조건 보존을 domain 회귀 테스트와 기존 presentation 테스트로 검증한다.
병합 및 의존 순서
#1429와 #1739를 함께 끝내는 PR #2123가 선행 변경이다. 이 이슈의 PR은 해당 브랜치를 실제 base로 사용하며 #2123 병합 후 병합한다. 실제 blocked_by는 대표 선행 이슈 #1429로 연결한다.
닫힌 미병합 PR #1967에서 저장 정책만 참고하고 현재 코드에 맞춰 반영한다. 취소된 MVI나 네비게이션 전환은 복원하지 않는다. 이 이슈는 새 후속 PR의 병합으로 완료한다.
이 이슈를 맡은 PR 은 #1967 이다 (base codex/1695-setting-nav3). 본문에서 UpdateReceiverInfoUseCase 가 기본정보에서 인사말로 이어지는 저장 순서와 부분 성공을, UpdateTimeLetterDeliveryConditionUseCase 가 다른 콘텐츠 보존·TIME_LETTER 합성·기간 정규화를 소유한다고 적고 있다. UI 문구·로딩·중복 탭은 ViewModel 에 남긴다.
pr-open 라벨을 손으로 붙였다. #1967 은 제목이 (#1502) 로 끝나고 본문에서 네 이슈를 닫는데, 라벨러가 제목의 대표 이슈 하나만 읽어 나머지 셋에는 라벨도 링크 코멘트도 가지 않았다(#2082).
base 가 기본 브랜치가 아니라서 GitHub 의 Development 칸도 비어 있다. 이 이슈만 보면 아무도 손대지 않은 것으로 읽힌다.
이 코멘트에는 라벨러의 마커를 넣어 두어, #2082 수정이 머지돼도 같은 내용이 한 번 더 달리지 않는다. 라벨은 수정 전까지 배포본 리컨사일러가 도로 떼어 가므로 라벨이 없을 수 있다.
Activity
OnlyReadOneBook commentedon Sep 13, 2026
이 이슈를 맡은 PR 은 #1967 이다 (base
codex/1695-setting-nav3). 본문에서UpdateReceiverInfoUseCase가 기본정보에서 인사말로 이어지는 저장 순서와 부분 성공을,UpdateTimeLetterDeliveryConditionUseCase가 다른 콘텐츠 보존·TIME_LETTER 합성·기간 정규화를 소유한다고 적고 있다. UI 문구·로딩·중복 탭은 ViewModel 에 남긴다.pr-open라벨을 손으로 붙였다. #1967 은 제목이(#1502)로 끝나고 본문에서 네 이슈를 닫는데, 라벨러가 제목의 대표 이슈 하나만 읽어 나머지 셋에는 라벨도 링크 코멘트도 가지 않았다(#2082).base 가 기본 브랜치가 아니라서 GitHub 의 Development 칸도 비어 있다. 이 이슈만 보면 아무도 손대지 않은 것으로 읽힌다.
이 코멘트에는 라벨러의 마커를 넣어 두어, #2082 수정이 머지돼도 같은 내용이 한 번 더 달리지 않는다. 라벨은 수정 전까지 배포본 리컨사일러가 도로 떼어 가므로 라벨이 없을 수 있다.
github-actions commentedon Sep 20, 2026
이 이슈를 맡은 PR 은 #2124 다 (base
refactor/1429-setting-repositories).base 가 기본 브랜치(
develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에아무것도 표시하지 않는다. 본문에
Closes #N이 있어도 마찬가지다 — 그 링크는 기본 브랜치를target 하는 PR 에서만 만들어진다.
PR 이 닫히거나 머지되면 이 이슈의
pr-open라벨은 다음 리컨사일에서 떨어진다.refactor(setting): Nav3·MVI 선행 위에서 저장 UseCase 소비 (#1691)
chore(setting): propagate current setting parent (#1691)
test(setting): propagate save error viewport check (#1691)