Skip to content

feat: 병원 방문 이벤트에 비용(costKrw) 입력·추세 연결 (v0.7.1) - #42

Merged
eigger merged 3 commits into
masterfrom
feat/vet-visit-cost
Sep 3, 2026
Merged

feat: 병원 방문 이벤트에 비용(costKrw) 입력·추세 연결 (v0.7.1)#42
eigger merged 3 commits into
masterfrom
feat/vet-visit-cost

Conversation

@eigger

@eigger eigger commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • Event.costKrw 컬럼은 최초 스키마(P1-03)부터 DB에 있었지만 웹 UI 어디에도 연결된 적이 없었다. vet_visit 이벤트에 비용 입력란을 추가하고, 상세/타임라인 표시와 /analytics 페이지의 병원비 추세 그래프·기간 합계 타일까지 연결한다.
  • packages/sharedcreateEventSchema/updateEventSchemacostKrw 추가, API createEvent()·POST/PATCH /api/events가 값을 받고 돌려준다 (K-4 위반 없음 — 여전히 createEvent() 단일 진입점만 통과).
  • 병원(Contact)별로 나눠 집계하는 것(WORKPLAN.md P2-11)은 이번엔 손대지 않고 Phase 2로 남겨뒀다 — 이벤트 자체에 비용 값을 붙이는 것까지만.
  • ko/en 동시 반영 (K-9).

Test plan

  • npm run build:shared && npm run test -w packages/shared (31 tests)
  • npm run --workspace apps/api build && npm run --workspace apps/api test (130 tests)
  • npm run --workspace apps/web build && npm run --workspace apps/web test (112 tests, next build 타입체크 포함)
  • 실제 DB로 골든 패스(비용 입력 → 저장 → 상세/타임라인/추세 반영) 확인 — 이 작업 환경에 Docker/Postgres가 없어 브라우저로는 확인하지 못함. docs/WORKLOG.md에 남겨둠.

🤖 Generated with Claude Code

eigger and others added 2 commits September 4, 2026 07:57
Event.costKrw 컬럼은 최초 스키마부터 DB에 있었지만 웹 UI 어디에도 연결된 적이
없었다. vet_visit 이벤트에 비용 입력란을 추가하고, 상세/타임라인 표시와
analytics 페이지의 병원비 추세 그래프·기간 합계 타일까지 연결한다.
병원(Contact)별 집계는 계획대로 Phase 2(P2-11)에 남겨둔다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 병원비 입력에 콤마("30,000")를 넣으면 파싱이 거절되던 문제 수정.
  제출 전 콤마를 벗기고, 음수도 클라이언트에서 먼저 막는다
- costKrw에 Postgres INTEGER 상한(2,147,483,647) 검증 추가 — 넘으면
  기존엔 Prisma가 500을 냈는데 이제 400으로 떨어진다
- POST/PATCH /api/events가 costKrw를 저장·반환·삭제하는지 확인하는
  API 테스트 5개 추가 (음수·상한 초과 거절 포함)
- 병원비 추세 그래프 Y축에 compact 포맷터 — 큰 금액이 안 잘리게
- WORKPLAN.md P2-11/Phase 3에 이번 작업 반영, api.md에 costKrw 필드 문서화

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@eigger

eigger commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

리뷰의 Should-fix 2건 + 몇 가지 nit을 반영했습니다 (f3bfa37).

Should fix

  • 병원비 입력에 콤마("30,000")를 넣으면 거절되던 문제 — 제출 전 콤마 제거, 음수도 클라이언트에서 먼저 막음
  • costKrw에 Postgres INTEGER 상한(2,147,483,647) 검증 추가 — 넘으면 이제 400 (기존엔 Prisma가 500)

Nit 중 처리한 것

  • POST/PATCH /api/eventscostKrw를 저장·반환·삭제하는지 확인하는 API 테스트 5개 추가 (음수·상한 초과 거절 포함)
  • 병원비 추세 차트 Y축에 Intl.NumberFormat({notation:"compact"}) 적용 — 큰 금액이 안 잘림
  • WORKPLAN.md P2-11/Phase 3에 이번 작업 반영 (병원별 집계만 남았다고 명시), docs/api.mdcostKrw 필드 문서화

남겨둔 것 (지적대로 이번 PR 범위 밖으로 판단)

  • toLocaleString() 로케일 미전달 — 기존 패턴과 동일, 이번에 새로 생긴 문제 아님
  • 빈 차트 카피(analyticsEmptyDesc)·입력란 단위 라벨은 취향 영역이라 보류
  • 브라우저 골든 패스 확인은 여전히 로컬 DB가 필요 — 다음 세션 몫으로 WORKLOG에 남겨둠

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@eigger eigger changed the title feat: 병원 방문 이벤트에 비용(costKrw) 입력·추세 연결 feat: 병원 방문 이벤트에 비용(costKrw) 입력·추세 연결 (v0.7.1) Sep 3, 2026
@eigger
eigger merged commit 88d60f4 into master Sep 3, 2026
11 of 12 checks passed
@eigger
eigger deleted the feat/vet-visit-cost branch September 3, 2026 23:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant