v2026.05.19-01 가격 확인·제품 상태 필드 및 별 표시

실제 확인한 가격은 로 표시하고, 개봉/미개봉 상태를 목록·상세·DB에 반영했다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-19 15:21:13 +09:00
parent 44426a633d
commit 9447623ece
9 changed files with 924 additions and 302 deletions

View File

@@ -1,5 +1,9 @@
# 의사결정 이력
## 2026-05-19
- 임시 추정가와 실제 확인가를 구분하기 위해 `sale.priceVerified` 불리언을 도입하고, 확인 완료 항목은 제목 앞 노란 별로 표시하도록 했다.
- 패키지 개봉 여부는 판매 상태(`status`)와 분리해 `itemCondition`(SEALED/OPENED)으로 관리하고 목록·상세에 함께 노출하도록 했다.
## 2026-03-30
- 게임 목록 서비스의 기준 화면을 `index.html` + `nsw-detail.html` 2개로 단순화했다.
- 데이터 저장소를 별도 API 없이 정적 파일(`db/nsw.db.js`)로 유지하여 배포 복잡도를 낮췄다.

View File

@@ -3,30 +3,31 @@
## 메인 목록 화면 (`/index.html`)
- 담당 파일: `index.html`
- 연결 스크립트: `script/nsw.js`
- 데이터 소스: `db/nsw.db.js`
- 데이터 소스: `db/nsw.resale.db.js`
- 주요 UI:
- 언어 전환(한국어/일본어)
- 검색 입력
- 필터(언어 지원, 상태, 에디션, CERO)
- 필터(언어 지원, 판매 상태, 에디션, CERO)
- 정렬 드롭다운
- 게임 목록 테이블
- 게임 목록 테이블(가격 확인 별, 판매가, 판매 상태, 제품 상태, 지역)
- 사용자 동작:
- 목록 행 클릭 시 `nsw-detail.html?no={게임번호}`로 이동
## 상세 화면 (`/nsw-detail.html`)
- 담당 파일: `nsw-detail.html`
- 연결 스크립트: `script/nsw-detail.js`
- 데이터 소스: `db/nsw.db.js`
- 데이터 소스: `db/nsw.resale.db.js`
- 주요 UI:
- 상단 대표 이미지
- 게임 기본 정보(용량, 플레이 모드, 메이커, 언어, 등급, 출시일)
- 매 정보(구매일, 구매처, 가격, 주문번호, 추가 콘텐츠)
- 매 정보(판매가, 가격 기준, 제품 상태, 가격 확인 여부, 기준일)
- 사용자 동작:
- URL의 `no` 값으로 게임을 조회
- 해당 번호가 없으면 알림 후 목록 페이지로 리다이렉트
## 데이터 전용 파일
- `db/nsw.db.js`: 닌텐도 스위치 게임 데이터 본문
- `db/nsw.resale.db.js`: 닌텐도 스위치 중고 판매 목록·가격 데이터
- `db/nsw.db.js`: 레거시 보유 목록 데이터
- `db/nsw-sale.db.js`: 세일 관련 데이터(현재 화면 연결 없음)
- `db/amiibo.db.js`: 아미보 관련 데이터(현재 화면 연결 없음)

View File

@@ -7,18 +7,18 @@
## 화면/라우팅
- 목록 화면: `index.html`
- 주요 기능: 검색, 필터(언어/상태/국가/CERO), 정렬, 게임 개수 표시
- 데이터 소스: `db/nsw.db.js`
- 주요 기능: 검색, 필터(언어/판매상태/국가/CERO), 정렬, 게임 개수 표시, 가격 확인 별·제품 상태 표시
- 데이터 소스: `db/nsw.resale.db.js` (`export default``items` 배열)
- 스크립트: `script/nsw.js`
- 상세 화면: `nsw-detail.html`
- 주요 기능: 게임 기본 정보/매 정보 상세 표시
- 주요 기능: 게임 기본 정보/매 정보 상세 표시
- 진입 방식: `nsw-detail.html?no={gameNo}`
- 데이터 소스: `db/nsw.db.js`
- 데이터 소스: `db/nsw.resale.db.js`
- 스크립트: `script/nsw-detail.js`
## 데이터 구조
- 파일: `db/nsw.db.js`
- 형태: `export default []` 배열
## 데이터 구조 (중고 판매 DB)
- 파일: `db/nsw.resale.db.js`
- 형태: `export const NSW_RESALE_DB = { metadata, items }`, `export default items`
- 주요 필드:
- `no` (number): 게임 고유 순번
- `title` (string): 일본어/원문 타이틀
@@ -38,15 +38,15 @@
- `release` (string|null): 출시일(예: `2017年7月20日`)
- `tags` (string|null): 장르/특성 태그
- `extension` (string[]|null): 추가 콘텐츠 목록
- `status` (string): `package` | `download` | `expansion` | `sold`
- `status` (string): `available` | `sold` (판매 가능/판매완료)
- `itemCondition` (string|null): `SEALED`(미개봉) | `OPENED`(개봉) | `null`(미정)
- `country` (string): `KOR` | `JPN`
- `cero` (string|null): CERO 등급
- `purchaseInformation` (object|null):
- `date` (string|null)
- `store` (string|null)
- `purchase` (number|null)
- `monetary` (string|null)
- `orderNumber` (string|null)
- `sale` (object):
- `suggestedPrice` (number): 추천 판매가(KRW)
- `priceRange` (object): `{ min, max }`
- `pricingBasis`, `confidence`, `checkedAt`, `memo`
- `priceVerified` (boolean): 실제 시세 확인 완료 여부. `true`이면 목록·상세 제목 앞 노란 별 표시
## 필터/정렬 동작
- 필터:

View File

@@ -4,6 +4,7 @@
- 레거시 페이지/리소스(아미보, 세일 관련) 제거 후 문서와 실제 구조 정합성 점검이 필요하다.
## 다음 작업
- `sale.priceVerified: true``itemCondition` 값을 타이틀별로 실제 데이터에 맞게 채운다.
- 목록/상세 페이지의 경로 및 텍스트 다국어 키를 재검증한다.
- 필터 조합(언어+상태+국가+CERO) 테스트 케이스를 작성한다.
- 데이터 스키마 검증 스크립트를 추가해 누락 필드와 오탈자를 자동 확인한다.

View File

@@ -1,5 +1,12 @@
# 작업 이력
## v2026.05.19-01
- `db/nsw.resale.db.js` 가격 확인 플래그 `sale.priceVerified` 추가
- `db/nsw.resale.db.js` 제품 상태 `itemCondition`(SEALED/OPENED) enum·필드 추가
- `script/nsw.js` 가격 확인 타이틀 노란 별 표시, 목록 제품 상태 컬럼 반영
- `script/nsw-detail.js` 상세 화면 별 표시·제품 상태·가격 확인 문구 반영
- `index.html` 테이블 제품 상태 열 헤더 반영
## v2026.03.30-04
- 커밋 제목 규칙 추가: `vYYYY.MM.DD-번호 내용`
- `docs/convention.md` 커밋 제목 형식 가이드 반영