[260211] 상품 컨디션 정의
- 가격 누락 복구
643
data/games.js
@@ -1,281 +1,440 @@
|
||||
const games = [
|
||||
{
|
||||
id: 'x4r7p2ds',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
id: 't6x3m8qe',
|
||||
createdAt: '2026-02-10',
|
||||
updatedAt: '2026-02-10',
|
||||
|
||||
title: '하지러브 -Making*Lovers-',
|
||||
price: 70000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
title: '홍마성 레밀리아 Ⅱ 요환의 진혼가',
|
||||
price: 60000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
tags: ['Switch', 'JP'],
|
||||
|
||||
images: [
|
||||
'/images/games/x4r7p2ds_01.jpg',
|
||||
'/images/games/x4r7p2ds_02.jpg',
|
||||
'/images/games/x4r7p2ds_03.jpg',
|
||||
'/images/games/x4r7p2ds_04.jpg',
|
||||
],
|
||||
images: ['/images/games/t6x3m8qe_01.jpg', '/images/games/t6x3m8qe_02.jpg', '/images/games/t6x3m8qe_03.jpg', '/images/games/t6x3m8qe_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
description: '미개봉 새제품, 일본 내수용(JP), 한국어 지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
isVerified: true,
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['홍마성 레밀리아 Ⅱ 요환의 진혼가 (紅魔城レミリアⅡ 妖幻の鎮魂歌) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 제품입니다.', '멀티랭기지 지원으로 한국어 플레이가 가능합니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
|
||||
fullDescription: [
|
||||
'하지러브 -Making*Lovers- (ハジラブ -Making*Lovers-) 닌텐도 스위치용 패키지입니다.',
|
||||
'일본 내수용(JP) 완전생산한정판 제품입니다.',
|
||||
'한국어는 지원하지 않습니다.',
|
||||
'미개봉 새제품 상태입니다.',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'q8t2mz4k',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
id: 'v9f2k6mb',
|
||||
createdAt: '2026-02-10',
|
||||
updatedAt: '2026-02-10',
|
||||
|
||||
title: '아이키스3 Cute',
|
||||
price: 110000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
title: '아키바스 트립2 디렉터스 컷',
|
||||
price: 80000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '초회 한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: [
|
||||
'/images/games/q8t2mz4k_01.jpg',
|
||||
'/images/games/q8t2mz4k_02.jpg',
|
||||
'/images/games/q8t2mz4k_03.jpg',
|
||||
'/images/games/q8t2mz4k_04.jpg',
|
||||
'/images/games/q8t2mz4k_05.jpg',
|
||||
],
|
||||
images: ['/images/games/v9f2k6mb_01.jpg', '/images/games/v9f2k6mb_02.jpg', '/images/games/v9f2k6mb_03.jpg', '/images/games/v9f2k6mb_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
description: '미개봉 새제품, 초회 한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
isVerified: true,
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ["아키바스 트립2 디렉터스 컷 (AKIBA'S TRIP2 ディレクターズカット) 닌텐도 스위치용 패키지입니다.", '일본 내수용(JP) 초회 한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
fullDescription: [
|
||||
'아이키스3 Cute (アイキス3 Cute) 닌텐도 스위치용 패키지입니다.',
|
||||
'일본 내수용(JP) 완전생산한정판 제품입니다.',
|
||||
'한국어는 지원하지 않습니다.',
|
||||
'미개봉 새제품 상태입니다.',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'm7k2v9qp',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
id: 'k2d9s7xa',
|
||||
createdAt: '2026-02-10',
|
||||
updatedAt: '2026-02-10',
|
||||
|
||||
title: '아이키스2',
|
||||
price: 80000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
title: '아키바스 트립 퍼스트 메모리',
|
||||
price: 60000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '초회 한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: [
|
||||
'/images/games/m7k2v9qp_01.jpg',
|
||||
'/images/games/m7k2v9qp_02.jpg',
|
||||
'/images/games/m7k2v9qp_03.jpg',
|
||||
'/images/games/m7k2v9qp_04.jpg',
|
||||
],
|
||||
images: ['/images/games/k2d9s7xa_01.jpg', '/images/games/k2d9s7xa_02.jpg', '/images/games/k2d9s7xa_03.jpg', '/images/games/k2d9s7xa_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
description: '초회 한정판, 일본 내수용(JP), 한국어 지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
isVerified: true,
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ["아키바스 트립 퍼스트 메모리 (AKIBA'S TRIP ファーストメモリー) 닌텐도 스위치용 패키지입니다.", '일본 내수용(JP) 초회 한정판 제품입니다.', '멀티랭기지 지원으로 한국어 플레이가 가능합니다.', '', '', '', '', ''],
|
||||
},
|
||||
fullDescription: [
|
||||
'아이키스2 (アイキス2) 닌텐도 스위치용 패키지입니다.',
|
||||
'일본 내수용(JP) 완전생산한정판 제품입니다.',
|
||||
'한국어는 지원하지 않습니다.',
|
||||
'미개봉 새제품 상태입니다.',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'q8m2x4ra',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
id: 'g5w8n2rb',
|
||||
createdAt: '2026-02-10',
|
||||
updatedAt: '2026-02-10',
|
||||
|
||||
title: '풀 키스 SS',
|
||||
price: 80000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
title: '하츠유키 사쿠라',
|
||||
price: 80000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: [
|
||||
'/images/games/q8m2x4ra_01.jpg',
|
||||
'/images/games/q8m2x4ra_02.jpg',
|
||||
'/images/games/q8m2x4ra_03.jpg',
|
||||
'/images/games/q8m2x4ra_04.jpg',
|
||||
'/images/games/q8m2x4ra_05.jpg',
|
||||
],
|
||||
images: ['/images/games/g5w8n2rb_01.jpg', '/images/games/g5w8n2rb_02.jpg', '/images/games/g5w8n2rb_03.jpg', '/images/games/g5w8n2rb_04.jpg', '/images/games/g5w8n2rb_05.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
isVerified: true,
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['하츠유키 사쿠라 (はつゆきさくら) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
fullDescription: [
|
||||
'풀 키스 SS (フルキスSS) 닌텐도 스위치용 패키지입니다.',
|
||||
'일본 내수용(JP) 완전생산한정판 제품입니다.',
|
||||
'한국어는 지원하지 않습니다.',
|
||||
'미개봉 새제품 상태입니다.',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'k3f8d2qa',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
id: 'd8m5r2yk',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
|
||||
title: '하루키스',
|
||||
price: 80000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
title: '토리노라인',
|
||||
price: 45000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: [
|
||||
'/images/games/k3f8d2qa_01.jpg',
|
||||
'/images/games/k3f8d2qa_02.jpg',
|
||||
'/images/games/k3f8d2qa_03.jpg',
|
||||
'/images/games/k3f8d2qa_04.jpg',
|
||||
'/images/games/k3f8d2qa_05.jpg',
|
||||
],
|
||||
images: ['/images/games/d8m5r2yk_01.jpg', '/images/games/d8m5r2yk_02.jpg', '/images/games/d8m5r2yk_03.jpg', '/images/games/d8m5r2yk_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
isVerified: true,
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['토리노라인 (トリノライン) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
fullDescription: [
|
||||
'하루키스 (ハルキス) 닌텐도 스위치용 패키지입니다.',
|
||||
'일본 내수용(JP) 완전생산한정판 제품입니다.',
|
||||
'한국어는 지원하지 않습니다.',
|
||||
'미개봉 새제품 상태입니다.',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'p4x9t2qa',
|
||||
createdAt: '2026-02-07',
|
||||
updatedAt: '2026-02-07',
|
||||
id: 'h6q3z9vt',
|
||||
createdAt: '2026-02-10',
|
||||
updatedAt: '2026-02-10',
|
||||
|
||||
title: '동방 루나 나이츠',
|
||||
price: 70000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '디럭스판',
|
||||
title: '사랑하는 그녀의 서투른 무대',
|
||||
price: 30000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: [
|
||||
'/images/games/p4x9t2qa_01.jpg',
|
||||
'/images/games/p4x9t2qa_02.jpg',
|
||||
'/images/games/p4x9t2qa_03.jpg',
|
||||
'/images/games/p4x9t2qa_04.jpg',
|
||||
],
|
||||
images: ['/images/games/h6q3z9vt_01.jpg', '/images/games/h6q3z9vt_02.jpg', '/images/games/h6q3z9vt_03.jpg', '/images/games/h6q3z9vt_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 디럭스판, 일본 내수용(JP), 한국어 지원',
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
isVerified: true,
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['사랑하는 그녀의 서투른 무대 (恋する彼女の不器用な舞台) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
fullDescription: [
|
||||
'동방 루나 나이츠 (Touhou Luna Nights / 東方ルナナイツ) 닌텐도 스위치용 패키지입니다.',
|
||||
'일본 내수용(JP) 디럭스판 제품입니다.',
|
||||
'멀티랭기지 지원으로 한국어 플레이가 가능합니다.',
|
||||
'미개봉 새제품 상태입니다.',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'k8q3mz7r',
|
||||
createdAt: '2026-02-07',
|
||||
updatedAt: '2026-02-07',
|
||||
id: 'p2w9e6ks',
|
||||
createdAt: '2026-02-10',
|
||||
updatedAt: '2026-02-10',
|
||||
|
||||
title: '하이퍼→하이스피드→지니어스',
|
||||
price: 40000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '초회 한정판',
|
||||
title: '추억을 안고 만나러 와!',
|
||||
price: 40000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', '한국어미지원', 'Limited Edition'],
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: [
|
||||
'/images/games/k8q3mz7r_01.jpg',
|
||||
'/images/games/k8q3mz7r_02.jpg',
|
||||
'/images/games/k8q3mz7r_03.jpg',
|
||||
'/images/games/k8q3mz7r_04.jpg',
|
||||
],
|
||||
images: ['/images/games/p2w9e6ks_01.jpg', '/images/games/p2w9e6ks_02.jpg', '/images/games/p2w9e6ks_03.jpg', '/images/games/p2w9e6ks_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 초회 한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
isVerified: true,
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['추억을 안고 만나러 와! (思い出抱えて アイにコイ!!) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'u3n8x5ra',
|
||||
createdAt: '2026-02-10',
|
||||
updatedAt: '2026-02-10',
|
||||
|
||||
title: 'DeepOne',
|
||||
price: 60000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/u3n8x5ra_01.jpg', '/images/games/u3n8x5ra_02.jpg', '/images/games/u3n8x5ra_03.jpg', '/images/games/u3n8x5ra_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['DeepOne (ディープワン) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'r4h8k2pz',
|
||||
createdAt: '2026-02-09',
|
||||
updatedAt: '2026-02-09',
|
||||
|
||||
title: '홍월 흔들리는 사랑의 등불',
|
||||
price: 60000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/r4h8k2pz_01.jpg', '/images/games/r4h8k2pz_02.jpg', '/images/games/r4h8k2pz_03.jpg', '/images/games/r4h8k2pz_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['홍월 흔들리는 사랑의 등불 (紅月ゆれる恋あかり) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'c9v3k7mw',
|
||||
createdAt: '2026-02-09',
|
||||
updatedAt: '2026-02-09',
|
||||
|
||||
title: '시로가네×스피릿츠!',
|
||||
price: 90000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/c9v3k7mw_01.jpg', '/images/games/c9v3k7mw_02.jpg', '/images/games/c9v3k7mw_03.jpg', '/images/games/c9v3k7mw_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['시로가네×스피릿츠! (シロガネ×スピリッツ!) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'x4r7p2ds',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
|
||||
title: '하지러브 -Making*Lovers-',
|
||||
price: 70000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/x4r7p2ds_01.jpg', '/images/games/x4r7p2ds_02.jpg', '/images/games/x4r7p2ds_03.jpg', '/images/games/x4r7p2ds_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
|
||||
fullDescription: ['하지러브 -Making*Lovers- (ハジラブ -Making*Lovers-) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'q8t2mz4k',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
|
||||
title: '아이키스3 Cute',
|
||||
price: 110000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/q8t2mz4k_01.jpg', '/images/games/q8t2mz4k_02.jpg', '/images/games/q8t2mz4k_03.jpg', '/images/games/q8t2mz4k_04.jpg', '/images/games/q8t2mz4k_05.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['아이키스3 Cute (アイキス3 Cute) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'm7k2v9qp',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
|
||||
title: '아이키스2',
|
||||
price: 80000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/m7k2v9qp_01.jpg', '/images/games/m7k2v9qp_02.jpg', '/images/games/m7k2v9qp_03.jpg', '/images/games/m7k2v9qp_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['아이키스2 (アイキス2) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'q8m2x4ra',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
|
||||
title: '풀 키스 SS',
|
||||
price: 80000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/q8m2x4ra_01.jpg', '/images/games/q8m2x4ra_02.jpg', '/images/games/q8m2x4ra_03.jpg', '/images/games/q8m2x4ra_04.jpg', '/images/games/q8m2x4ra_05.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['풀 키스 SS (フルキスSS) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'k3f8d2qa',
|
||||
createdAt: '2026-02-08',
|
||||
updatedAt: '2026-02-08',
|
||||
|
||||
title: '하루키스',
|
||||
price: 80000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '완전생산한정판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/k3f8d2qa_01.jpg', '/images/games/k3f8d2qa_02.jpg', '/images/games/k3f8d2qa_03.jpg', '/images/games/k3f8d2qa_04.jpg', '/images/games/k3f8d2qa_05.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 완전생산한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['하루키스 (ハルキス) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어는 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'p4x9t2qa',
|
||||
createdAt: '2026-02-07',
|
||||
updatedAt: '2026-02-07',
|
||||
|
||||
title: '동방 루나 나이츠',
|
||||
price: 70000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '디럭스판',
|
||||
|
||||
tags: ['Switch', 'JP', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/p4x9t2qa_01.jpg', '/images/games/p4x9t2qa_02.jpg', '/images/games/p4x9t2qa_03.jpg', '/images/games/p4x9t2qa_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 디럭스판, 일본 내수용(JP), 한국어 지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['동방 루나 나이츠 (Touhou Luna Nights / 東方ルナナイツ) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 디럭스판 제품입니다.', '멀티랭기지 지원으로 한국어 플레이가 가능합니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
{
|
||||
id: 'k8q3mz7r',
|
||||
createdAt: '2026-02-07',
|
||||
updatedAt: '2026-02-07',
|
||||
|
||||
title: '하이퍼→하이스피드→지니어스',
|
||||
price: 40000,
|
||||
currency: '₩',
|
||||
category: 'Games',
|
||||
status: '판매중',
|
||||
customTag: '초회 한정판',
|
||||
|
||||
tags: ['Switch', 'JP', '한국어미지원', 'Limited Edition'],
|
||||
|
||||
images: ['/images/games/k8q3mz7r_01.jpg', '/images/games/k8q3mz7r_02.jpg', '/images/games/k8q3mz7r_03.jpg', '/images/games/k8q3mz7r_04.jpg'],
|
||||
|
||||
description: '미개봉 새제품, 초회 한정판, 일본 내수용(JP), 한국어 미지원',
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['하이퍼→하이스피드→지니어스 (Hyper→Highspeed→Genius / ハイパーハイスピードジーニアス) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 초회 한정판 제품입니다.', '한국어를 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '', '', ''],
|
||||
},
|
||||
fullDescription: [
|
||||
'하이퍼→하이스피드→지니어스 (Hyper→Highspeed→Genius / ハイパーハイスピードジーニアス) 닌텐도 스위치용 패키지입니다.',
|
||||
'일본 내수용(JP) 초회 한정판 제품입니다.',
|
||||
'한국어를 지원하지 않습니다.',
|
||||
'미개봉 새제품 상태입니다.',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'p4x8s2ke',
|
||||
createdAt: '2026-02-07',
|
||||
@@ -296,7 +455,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['스다마 릴레이션 (すだまリレイシヨン) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '한국어를 지원하지 않습니다.', '미개봉 새제품 상태입니다.', '', '클리어 파일은 존재는 하지만 상태는 좋지 않습니다.', '', ''],
|
||||
@@ -321,7 +480,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Excellent (개봉품, 상태 매우 양호)',
|
||||
condition: 'EXCELLENT',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['파이어 엠블렘 무쌍 풍화설월 (ファイアーエムブレム無双 風花雪月) 닌텐도 스위치용 패키지입니다.', '한국 정식 발매판(KR) 제품입니다.', '', '개봉 후 OPP에 넣어 보관·관리했으며', '전체적으로 상태가 매우 좋은 편입니다.', '', '', ''],
|
||||
@@ -346,7 +505,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Excellent (개봉품, 상태 매우 양호)',
|
||||
condition: 'EXCELLENT',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['젤다무쌍 하이랄의 전설들 DX (ゼルダ無双 ハイラルオールスターズ DX) 닌텐도 스위치용 패키지입니다.', '한국 정식 발매판(KR) 제품입니다.', '', '개봉 후 OPP에 넣어 보관·관리했으며', '전체적으로 상태가 매우 좋은 편입니다.', '', '', ''],
|
||||
@@ -371,7 +530,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Excellent (개봉품, 상태 매우 양호)',
|
||||
condition: 'EXCELLENT',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['얼라이언스 얼라이브 HD Remastered (アライアンス・アライブ HDリマスター) 닌텐도 스위치용 패키지입니다.', '한국 정식 발매판(KR) 제품입니다.', '', '개봉 후 OPP에 넣어 보관·관리했으며', '전체적으로 상태가 매우 좋은 편입니다.', '', '', ''],
|
||||
@@ -396,7 +555,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Excellent (개봉품, 상태 매우 양호)',
|
||||
condition: 'EXCELLENT',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['크라이스타 (CRYSTAR) 닌텐도 스위치용 패키지입니다.', '한국 정식 발매판(KR) 제품입니다.', '', '사용 후 OPP에 넣어 보관·관리했으며', '전체적으로 상태가 매우 좋은 편입니다.', '', '', ''],
|
||||
@@ -421,7 +580,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['신 같은 너에게 (神様のような君へ) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 제품입니다.', '미개봉 새제품 상태입니다.', '', '※ 한국어는 지원하지 않습니다.', '', '', ''],
|
||||
@@ -446,7 +605,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['드래곤볼 더 브레이커스 스페셜 에디션 닌텐도 스위치용 패키지입니다.', '한국 정식 발매판(KR) 제품입니다.', '미개봉 새제품 상태입니다.', '', '', '', '', ''],
|
||||
@@ -471,7 +630,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['페어리 펜서 F 리프레인 코드 닌텐도 스위치용 패키지입니다.', '한국 정식 발매판(KR) 제품입니다.', '미개봉 새제품 상태입니다.', '', '', '', '', ''],
|
||||
@@ -496,7 +655,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Excellent (개봉품, 상태 매우 양호)',
|
||||
condition: 'EXCELLENT',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: [
|
||||
@@ -530,7 +689,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Excellent (개봉품, 상태 매우 양호)',
|
||||
condition: 'EXCELLENT',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['젤다의 전설 꿈꾸는 섬 (ゼルダの伝説 夢をみる島) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 제품입니다.', '멀티랭기지 지원으로 한국어 플레이가 가능합니다.', '', '사용 후 OPP에 넣어 보관·관리했으며', '전체적으로 상태가 매우 좋은 편입니다.', '', '', ''],
|
||||
@@ -554,7 +713,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Excellent (개봉품, 상태 매우 양호)',
|
||||
condition: 'EXCELLENT',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: [
|
||||
@@ -596,7 +755,7 @@ const games = [
|
||||
// [5] 상세 스펙 및 본문 (데이터 양이 가장 많으므로 하단 배치)
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['플로럴 플로우러브 (フローラル・フローラブ) 닌텐도 스위치용 패키지입니다.', '일본 내수용(JP) 완전생산한정판 제품입니다.', '미개봉 새제품 상태입니다.', '한글은 지원하지 않으며 일본어로 플레이 가능합니다.', '', '', '', '', '', '', '', '', '', ''],
|
||||
@@ -620,7 +779,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['닌텐도 Game & Watch 젤다의 전설 에디션입니다.', '일본 내수용 제품입니다.', '미개봉 새제품 상태입니다.', '소장용으로 보관하기 좋은 상태입니다.', '', '※ 게임&워치는 한국어에 대응하지 않습니다.', '', '', '', '', '', '', '', ''],
|
||||
@@ -644,7 +803,7 @@ const games = [
|
||||
|
||||
specs: {
|
||||
purchaseDate: '',
|
||||
condition: 'Brand New (미개봉)',
|
||||
condition: 'BRAND_NEW',
|
||||
isVerified: true,
|
||||
},
|
||||
fullDescription: ['닌텐도 Game & Watch 슈퍼 마리오 에디션입니다.', '한국 정식 발매판으로 국내 유통된 제품입니다.', '미개봉 새제품 상태입니다.', '소장용으로 보관하기 좋은 상태입니다.', '', '※ 게임&워치는 한국어에 대응하지 않습니다.', '', '', '', '', '', '', '', ''],
|
||||
|
||||
BIN
images/games/c9v3k7mw_01.jpg
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
images/games/c9v3k7mw_02.jpg
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
images/games/c9v3k7mw_03.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/c9v3k7mw_04.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/d8m5r2yk_01.jpg
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
images/games/d8m5r2yk_02.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/d8m5r2yk_03.jpg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
images/games/d8m5r2yk_04.jpg
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
images/games/g5w8n2rb_01.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/g5w8n2rb_02.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/g5w8n2rb_03.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/g5w8n2rb_04.jpg
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
images/games/g5w8n2rb_05.jpg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
images/games/h6q3z9vt_01.jpg
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
images/games/h6q3z9vt_02.jpg
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
images/games/h6q3z9vt_03.jpg
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
images/games/h6q3z9vt_04.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
images/games/k2d9s7xa_01.jpg
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
images/games/k2d9s7xa_02.jpg
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
images/games/k2d9s7xa_03.jpg
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
images/games/k2d9s7xa_04.jpg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
images/games/p2w9e6ks_01.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/p2w9e6ks_02.jpg
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
images/games/p2w9e6ks_03.jpg
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
images/games/p2w9e6ks_04.jpg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
images/games/r4h8k2pz_01.jpg
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
images/games/r4h8k2pz_02.jpg
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
images/games/r4h8k2pz_03.jpg
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
images/games/r4h8k2pz_04.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/t6x3m8qe_01.jpg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
images/games/t6x3m8qe_02.jpg
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
images/games/t6x3m8qe_03.jpg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
images/games/t6x3m8qe_04.jpg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
images/games/u3n8x5ra_01.jpg
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
images/games/u3n8x5ra_02.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/u3n8x5ra_03.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
images/games/u3n8x5ra_04.jpg
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
images/games/v9f2k6mb_01.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/v9f2k6mb_02.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
images/games/v9f2k6mb_03.jpg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
images/games/v9f2k6mb_04.jpg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
@@ -184,9 +184,9 @@
|
||||
<input type="checkbox" id="select-all-current" class="rounded border-slate-300" onchange="window.toggleSelectAll(this.checked)" />
|
||||
</th>
|
||||
<th class="py-4 px-4 text-slate-800 dark:text-slate-200">상품명</th>
|
||||
<th class="py-4 px-4">카테고리</th>
|
||||
<th class="py-4 px-4">제품 상태</th>
|
||||
<th class="py-4 px-4 text-right">가격</th>
|
||||
<th class="py-4 px-4 text-center">상태</th>
|
||||
<th class="hidden lg:block py-4 px-4 text-center">판매 상태</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="product-table-body" class="text-sm divide-y divide-slate-100 dark:divide-slate-800"></tbody>
|
||||
|
||||
@@ -72,3 +72,15 @@ export const SEARCH_CONFIG = {
|
||||
USE_DESCRIPTION: true, // 요약 설명 검색
|
||||
USE_FULL_DESCRIPTION: false, // 상세 설명 배열 검색
|
||||
};
|
||||
|
||||
/** 상품 컨디션(specs.condition) 정의 */
|
||||
export const PRODUCT_CONDITIONS = {
|
||||
BRAND_NEW: { label: 'Brand New (미개봉)', color: 'text-emerald-600', level: 'S' },
|
||||
LIKE_NEW: { label: 'Like New (단순개봉)', color: 'text-blue-600', level: 'A+' },
|
||||
EXCELLENT: { label: 'Excellent (최상급)', color: 'text-sky-600', level: 'A' },
|
||||
GOOD: { label: 'Good (보통/사용감)', color: 'text-slate-600', level: 'B' },
|
||||
INCOMPLETE: { label: 'Incomplete (구성품 누락)', color: 'text-amber-600', level: 'C' },
|
||||
DAMAGED: { label: 'Damaged (하자/파손)', color: 'text-orange-600', level: 'D' },
|
||||
JUNK: { label: 'Junk (동작불가/부품용)', color: 'text-red-600', level: 'F' },
|
||||
OTHER: { label: '기타 (상세설명 참고)', color: 'text-indigo-600', level: '-' }
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
/** 상품 그리드·페이지네이션 렌더링 */
|
||||
import { state } from './state.js';
|
||||
import { ITEMS_PER_PAGE, STATUS_META, STATUS_COLOR } from './config.js';
|
||||
import { ITEMS_PER_PAGE, STATUS_META, STATUS_COLOR, PRODUCT_CONDITIONS } from './config.js';
|
||||
import { updateSummary } from './main.js';
|
||||
|
||||
export function renderProducts(page = 1) {
|
||||
@@ -73,7 +73,10 @@ export function renderProducts(page = 1) {
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-col gap-1">
|
||||
<h3 class="text-slate-900 dark:text-white text-base font-semibold leading-tight ${isSold ? 'line-through text-slate-400' : ''}">${product.title}</h3>
|
||||
<div class="flex flex-col sm:flex-row justify-between items-start gap-1">
|
||||
<h3 class="text-slate-900 dark:text-white text-base font-semibold leading-tight break-keep ${isSold ? 'line-through text-slate-400' : ''}">${product.title}</h3>
|
||||
<p class="text-slate-900 dark:text-white text-base font-bold text-nowrap">${product.currency}${product.price.toLocaleString()}</p>
|
||||
</div>
|
||||
<p class="text-slate-500 dark:text-slate-400 text-sm font-normal line-clamp-1">${product.description}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -85,23 +88,39 @@ export function renderProducts(page = 1) {
|
||||
tableBody.innerHTML = pagedProducts
|
||||
.map((product) => {
|
||||
const isSelectable = STATUS_META[product.status]?.selectable !== false;
|
||||
const conditionKey = product.specs.condition;
|
||||
const conditionConfig = PRODUCT_CONDITIONS[conditionKey];
|
||||
|
||||
let conditionDisplay = '';
|
||||
let conditionClass = 'text-slate-500';
|
||||
|
||||
if (conditionConfig) {
|
||||
// 1. 정의된 Key인 경우 (추천 방식)
|
||||
conditionDisplay = conditionConfig.label;
|
||||
conditionClass = conditionConfig.color;
|
||||
} else if (conditionKey && conditionKey.trim() !== '') {
|
||||
// 2. 정의되지 않았지만 텍스트가 있는 경우 (기존 수기 입력 데이터)
|
||||
conditionDisplay = conditionKey;
|
||||
} else {
|
||||
// 3. 데이터가 비어있는 경우
|
||||
conditionDisplay = '상세 설명 참고 ℹ️';
|
||||
conditionClass = 'text-indigo-500 italic';
|
||||
}
|
||||
|
||||
return `
|
||||
<tr class="hover:bg-slate-50 dark:hover:bg-slate-800/50 transition-colors cursor-pointer" onclick="if(event.target.type !== 'checkbox') openModal('${product.id}')">
|
||||
<td class="py-4 px-4 text-center" onclick="event.stopPropagation()">
|
||||
<input type="checkbox" class="product-check rounded border-slate-300 w-4 h-4 ${isSelectable ? 'cursor-pointer' : 'opacity-20 cursor-not-allowed'}"
|
||||
${state.selectedIds.has(product.id) ? 'checked' : ''}
|
||||
${isSelectable ? '' : 'disabled'}
|
||||
onchange="window.toggleSelectItem('${product.id}')">
|
||||
</td>
|
||||
<td class="py-4 px-4 font-semibold text-slate-900 dark:text-white">${product.title}</td>
|
||||
<td class="py-4 px-4 text-slate-500 text-xs">${product.category}</td>
|
||||
<td class="py-4 px-4 text-right font-bold text-slate-900 dark:text-white">₩${product.price.toLocaleString()}</td>
|
||||
<td class="py-4 px-4 text-center">
|
||||
<span class="px-2 py-0.5 rounded text-[10px] font-bold border ${STATUS_COLOR[product.status]}">${product.status}</span>
|
||||
</td>
|
||||
</tr>`;
|
||||
<tr class="hover:bg-slate-50 dark:hover:bg-slate-800/50 transition-colors cursor-pointer" onclick="if(event.target.type !== 'checkbox') openModal('${product.id}')">
|
||||
<td class="py-4 px-4 text-center" onclick="event.stopPropagation()">
|
||||
<input type="checkbox" ...>
|
||||
</td>
|
||||
<td class="py-4 px-4 font-semibold text-slate-900 dark:text-white">${product.title}</td>
|
||||
<td class="py-4 px-4 text-xs break-keep ${conditionClass}">${conditionDisplay}</td>
|
||||
<td class="py-4 px-4 text-right font-bold text-slate-900 dark:text-white">₩${product.price.toLocaleString()}</td>
|
||||
<td class="hidden lg:block py-4 px-4 text-center">
|
||||
<span class="px-2 py-0.5 rounded text-[10px] font-bold border ${STATUS_COLOR[product.status]}">${product.status}</span>
|
||||
</td>
|
||||
</tr>`;
|
||||
})
|
||||
.join('');
|
||||
.join('');
|
||||
}
|
||||
|
||||
// [중요] 전체 선택 체크박스 상태 동기화
|
||||
|
||||