Skip to content

feat(receiver): 수신자 홈 한 마디 작성일(createdAt) 표시 매핑 (closes 209)#406

Open
1hyok wants to merge 2 commits into
feat/403from
feat/209
Open

feat(receiver): 수신자 홈 한 마디 작성일(createdAt) 표시 매핑 (closes 209)#406
1hyok wants to merge 2 commits into
feat/403from
feat/209

Conversation

@1hyok

@1hyok 1hyok commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

📌𝘐𝘴𝘴𝘶𝘦𝘴

Closes #209 — chore(backend): /receiver-auth/message 응답에 작성일(createdAt) 필드 추가 요청

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • ReceiverMessageResponse DTO 에 createdAt 필드 추가, message nullable 화 — 서버 스키마(nullable=true) 반영 (b7e5e9c)
  • toDomain() 에서 기존 formatDateFromServer 로 ISO-8601 → yyyy.MM.dd 변환해 SenderMessageInfo.createdAt 전달
  • ReceiverHomeViewModel 의 Hero 카드 SenderMessage(date = ...) 매핑 — 기존 TODO 해소
  • ReceiverAuthDtoMapperTest 보강: 날짜 표시 형식 변환 + message/createdAt 미제공 시 null 유지 검증

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

Hero 카드 우상단 작성일 슬롯이 채워지는 변경. 카드 컴포넌트 자체는 무변경이라 기존 SenderMessageHeroCardScreenshotTest 가 시각을 커버. receiver-auth 는 mock 미커버 + 실수신자 인증 코드 필요로 실기기 캡처 생략, Compose Preview(2026.04.04 형식) 기준 검증.

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

  • stack base 의존: PR chore: 공식 가이드 권장 패턴 일관성 정리 (closes 403) #405(feat/403) 위에 stack — base 를 feat/403 으로 설정. chore: 공식 가이드 권장 패턴 일관성 정리 (closes 403) #405 머지 시 base 가 develop 으로 자동 전환됩니다. 본 PR 순수 변경분은 4파일 +35/−6.
  • 백엔드 createdAtLocalDateTime 직렬화라 "2026-06-08T12:00:53" 처럼 타임존 표기 없이 옴 — formatDateFromServerT 앞 날짜부만 사용하므로 Z 유무 무관.
  • 날짜 매핑 규약이 같은 파일 내 이원화: 기존 DeliveryVerification.createdAt 은 raw ISO 전달 + presentation 변환(yyyy.MM.dd. 점 포함), 본 PR 은 data 매퍼 변환(yyyy.MM.dd) — afternote data 모듈의 지배 패턴(기존 매퍼 4곳) 을 따랐고, 두 규약 차이는 도메인 모델 주석으로 명시. 장기 수렴 방향 의견 환영.
  • ReceiverMessageResponse.toDomain 의 dto 파일 colocate 는 기존 구조 유지 — mapper/ 이동은 본 PR 범위 제외.
  • 빌드 검증: ./gradlew :app:compileDebugKotlin :app:ktlintCheck :feature:afternote:data:testDebugUnitTest :feature:afternote:data:ktlintCheck :feature:receiver:domain:test :feature:receiver:domain:ktlintCheck BUILD SUCCESSFUL

- `SenderMessageInfo` 도메인 모델 및 `ReceiverMessageResponse` DTO에 `createdAt` 필드 추가
- 서버의 ISO-8601 날짜 형식을 `yyyy.MM.dd` 표시 형식으로 변환하여 매핑하는 로직 구현
- 메시지 본문이 없는 경우를 고려하여 `message` 필드를 nullable로 변경하고 기본값(null) 설정
- `ReceiverHomeViewModel`에서 UI 상태(`SenderMessage`) 구성 시 하드코딩된 빈 값 대신 실제 `createdAt` 데이터를 사용하도록 수정
- DTO 매퍼 테스트에 날짜 형식 변환 검증 및 미제공 필드에 대한 null 유지 테스트 추가
@1hyok 1hyok added the bug Something isn't working label Jun 10, 2026
- `ReceiverMessageContractTest` 클래스 추가를 통해 API 응답 데이터의 디코딩 및 도메인 변환 로직 검증
- 실서버 응답 페이로드를 활용하여 `senderName`, `message`, `createdAt` 필드 파싱 확인
- `createdAt` 날짜 포맷팅(`yyyy.MM.dd`) 및 선택적 필드 누락 시 Null 처리 안정성 확인
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant