feat(purchase): 소모품 사진 기능 — 검색 썸네일 + 신규/기존 품목 마스터 사진 등록

- 모바일 검색 결과에 품목 사진 썸네일 표시 (photo_path 있으면 이미지, 없으면 아이콘)
- 데스크탑 검색 드롭다운에도 사진 썸네일 추가
- 신규 품목 등록 시 사진 촬영 → consumable_items.photo_path에 저장 (bulk API)
- 기존 품목에 사진 없을 때 장바구니에서 "품목 사진 등록" → PUT /consumable-items/:id/photo
- imageUploadService에 consumables 디렉토리 추가
- HEIC 변환 + 폴백 지원

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-01 12:31:05 +09:00
parent ba2e3481e9
commit 6cd613c071
8 changed files with 164 additions and 14 deletions

View File

@@ -184,6 +184,26 @@
display: none;
}
.pm-search-results.open { display: block; }
.pm-search-thumb {
width: 36px;
height: 36px;
border-radius: 6px;
object-fit: cover;
flex-shrink: 0;
background: #f3f4f6;
}
.pm-search-thumb-empty {
width: 36px;
height: 36px;
border-radius: 6px;
background: #f3f4f6;
display: flex;
align-items: center;
justify-content: center;
color: #d1d5db;
font-size: 14px;
flex-shrink: 0;
}
.pm-search-item {
padding: 10px 12px;
font-size: 14px;
@@ -255,6 +275,25 @@
font-size: 12px;
flex-shrink: 0;
}
.pm-cart-thumb {
width: 40px;
height: 40px;
border-radius: 6px;
object-fit: cover;
flex-shrink: 0;
background: #f3f4f6;
}
.pm-cart-photo-btn {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
border: 1px dashed #d1d5db;
border-radius: 4px;
font-size: 11px;
color: #6b7280;
cursor: pointer;
}
.pm-cart-remove {
width: 24px;
height: 24px;