임동욱 임동욱 09-15
feat: 가맹몰 이미지를 백엔드가 준 저장소 MODULE_VOC_IMG로 올린다
빌려 쓰던 콘텐츠 섬네일·4컷만화 저장소를 걷어내고 대표·추가 묶음·메뉴 이미지가 모두 한
저장소로 간다(백엔드 제공, 2026-09-15).

Co-Authored-By: Claude Opus 5 
@8b0b2ae11d027749dd3b1a48af7b776e0d204475
app/(protected)/(basic)/system/merchant-details/_actions.ts
--- app/(protected)/(basic)/system/merchant-details/_actions.ts
+++ app/(protected)/(basic)/system/merchant-details/_actions.ts
@@ -190,7 +190,7 @@
   if (bundle.length === 0) {
     return '';
   }
-  return uploadAttachments(bundle, FILE_MODULE.merchantImages.id);
+  return uploadAttachments(bundle, FILE_MODULE.merchantImage.id);
 }
 
 function readDetailValues(
lib/domain/file-module.ts
--- lib/domain/file-module.ts
+++ lib/domain/file-module.ts
@@ -61,22 +61,14 @@
     extensions: ['jpg', 'png', 'gif', 'svg'],
   },
   /**
-   * 가맹몰 대표 이미지·메뉴 이미지(한 장).
-   *
-   * TODO(백엔드): 저장소 설정 표에 바우처용 행이 없다. 잠정 이름 `MODULE_VOUCHER`로 보냈더니
-   *   기본 저장소 폴백까지 실패해 500이 났다(2026-09-14 dev). 그래서 콘텐츠 섬네일 저장소를
-   *   빌려 쓴다 — 바우처 행이 생기면 여기와 `merchantImages`만 바꾼다.
+   * 가맹몰 이미지 — 대표·추가 묶음·메뉴 이미지 모두 여기로 간다(백엔드 제공 ID, 2026-09-15).
+   * TODO: 이 저장소의 허용 확장자 목록을 받지 못했다 — 시안 문구(JPG · PNG)대로 두고, 저장소가
+   *   더 좁으면 백엔드가 사유를 돌려준다.
    */
   merchantImage: {
-    id: 'MODULE_CONTENT_THUMB',
-    description: '가맹몰 대표·메뉴 이미지 — 콘텐츠 섬네일 저장소를 임시로 빌려 씀',
-    extensions: IMAGE,
-  },
-  /** 가맹몰 추가 이미지 묶음(여러 장). 여러 장 업로드가 확인된 곳이 4컷만화 저장소뿐이라 빌려 쓴다. */
-  merchantImages: {
-    id: 'MODULE_TOON_CONTENT',
-    description: '가맹몰 추가 이미지 묶음 — 4컷만화 저장소를 임시로 빌려 씀',
-    extensions: IMAGE,
+    id: 'MODULE_VOC_IMG',
+    description: '가맹몰 이미지 저장소',
+    extensions: ['jpg', 'jpeg', 'png'],
   },
   menuIcon: {
     id: 'MODULE_MENU_ICON',
Add a comment
List