## 배경 ### 서버가 아이템 상태를 저장하지 않고 계산함 - 상태 값이 4개로 줄어듦 | 이전 | 이후 | | --- | --- | | `PENDING` · `PROCESSING` | `PARSING` | | `READY` | `READY` (이름·가격·이미지 모두 있음) | | `INCOMPLETE` | `INCOMPLETE` (일부만 있음) | | `FAILED` | `FAILED` (상품을 정하지 못하고 실패) | - `PARSING` · `FAILED` 동안 상품 id·이름·가격·통화·이미지 모두 `null` - **참조:** 토너먼트 자체의 `PENDING` 상태는 그대로 ### 응답 필드 변경 | 대상 | 이전 | 이후 | | --- | --- | --- | | 위시 `item.id` | 항상 있음 | 상품이 정해지기 전 `null` | | 토너먼트 상세·후보 상세 `itemId` | 항상 있음 | 상품이 정해지기 전 `null` | | 위시 등록 응답 `reused` · `refreshNeeded` | 있음 | 삭제 | | 위시 `item.source` | `SERVER` · `SERVER_LLM` · `MANUAL` | 삭제 | | 위시 `item.method` · `item.userInput` | 없음 | 추출 경로(`STRUCTURED` · `LLM`)와 본인 입력 여부 | | 위시 상세 가격 이력 `source` | `SERVER` · `SERVER_LLM` · `MANUAL` | `method` · `userInput` 두 칸 | | 위시 `item.refreshing` | 없음 | 새로고침 중 여부. 값과 상태는 새로고침 전 것 유지 | | 위시 `item.sourceUrl` · `sourcePlatform` | 등록한 링크 | 상품이 정해지면 정규화된 상품 주소로 바뀔 수 있음 | ### 새로고침 응답 변경 - **이전:** 새 추출 버전이 `PENDING` 으로 바로 표시 - 새로고침 요청 뒤에도 기존 값과 상태 유지 - 진행 여부는 `refreshing` 으로만 구분 - `INCOMPLETE` 카드도 새로고침 허용 ## 인수 조건 - 파싱 중 카드가 위시 목록·위시 상세·토너먼트 담기·토너먼트 대기실에서 로딩 상태로 보임 - 상품 id 가 없는 카드가 위시에서 토너먼트 담기 목록에 나오지 않음 - **원인:** 담기 요청은 상품 id 목록을 보냄 - 직접 입력 표시는 `userInput` 기준으로 동작 - 가격 이력이 `method` · `userInput` 으로 출처를 표시 - 새로고침 중 카드는 기존 값을 보이면서 새로고침 중임을 구분 - 서버 반영 전 응답(`PENDING` · `PROCESSING` · `source`)이 와도 화면이 깨지지 않음 ## 참고 - 등록 직후 반환된 위시 id 는 유지되므로 위시 기준 라우팅은 그대로 동작 - 이미지 등록 확정 응답은 이미 확정한 이미지를 빼고 돌려줘 요청보다 적은 항목이나 빈 목록이 올 수 있음 - 위시 등록 409(`WISH-009`) 범위 확장 - 같은 링크로 담은 위시가 파싱 중·실패 상태여도 409 ## 연관 이슈 - TeamPiKi/core#1180 - TeamPiKi/core#1245
Activity