From af20f974f70229502ef2cb50feeae44dc138e23f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Thu, 12 Mar 2026 17:46:22 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[equipment]=20=EC=84=A4=EB=B9=84=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=EC=8B=9C=20=EC=82=AC=EC=A7=84=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EA=B8=B0=EB=8A=A5=20=EB=AC=B8=EC=84=9C=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README.md: 등록 시 사진 대기열+자동업로드 설명 추가 - equipment-frontend-request.md: 등록/수정 화면 사진 관리 가이드 업데이트 - equipment-service-build-plan.md: EquipmentForm 컴포넌트 설명 보강 --- dev/dev_plans/equipment-service-build-plan.md | 4 ++-- features/equipment/README.md | 4 +++- requests/equipment-frontend-request.md | 13 ++++++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/dev/dev_plans/equipment-service-build-plan.md b/dev/dev_plans/equipment-service-build-plan.md index 9b9106d..a1a9c81 100644 --- a/dev/dev_plans/equipment-service-build-plan.md +++ b/dev/dev_plans/equipment-service-build-plan.md @@ -304,7 +304,7 @@ react/src/components/equipment/ ├── EquipmentDashboard.tsx # 대시보드 (통계 카드 + 차트) ├── EquipmentListClient.tsx # 설비 목록 (UniversalListPage) ├── EquipmentDetailClient.tsx # 설비 상세 (탭: 기본정보/점검항목/수리이력/사진) -├── EquipmentForm.tsx # 등록/수정 폼 (Zod + React Hook Form) +├── EquipmentForm.tsx # 등록/수정 폼 (Zod + React Hook Form, 등록 시 사진 대기열+자동업로드) ├── InspectionGrid.tsx # 점검 그리드 (6주기, 셀 토글) ├── InspectionCycleSelector.tsx # 주기/기간 선택 ├── RepairListClient.tsx # 수리이력 목록 @@ -508,4 +508,4 @@ cd /home/aweso/sam/api && docker exec sam-api-1 ./vendor/bin/pint --- -**최종 업데이트**: 2026-03-12 +**최종 업데이트**: 2026-03-12 (설비 등록 시 사진 업로드 기능 반영) diff --git a/features/equipment/README.md b/features/equipment/README.md index fd05498..31ffbde 100644 --- a/features/equipment/README.md +++ b/features/equipment/README.md @@ -2,7 +2,7 @@ > **작성일**: 2026-02-27 > **상태**: MNG R&D 완료 / API Phase 1 완료 / React 미구현 -> **최종 갱신**: 2026-03-12 +> **최종 갱신**: 2026-03-12 (설비 등록 시 사진 업로드 기능 반영) --- @@ -362,6 +362,8 @@ equipment/ - 허용 확장자: jpg, jpeg, png, gif, bmp, webp (최대 10MB/파일) - 삭제 시 soft delete (`softDeleteFile()`) 적용 - MNG는 GCS + 자동 압축, API는 R2 직접 저장 +- **등록 시 사진 업로드**: 등록 폼에서 사진을 미리 선택하면 대기열에 추가되고 미리보기가 표시된다. 설비 저장 완료 후 대기 중인 사진이 자동으로 업로드된다. +- **수정 시 사진 관리**: 기존 사진 조회/삭제 + 새 사진 추가 가능 ### 5.6 엑셀 Import (MNG 전용) diff --git a/requests/equipment-frontend-request.md b/requests/equipment-frontend-request.md index 9e63f6d..8cf05f9 100644 --- a/requests/equipment-frontend-request.md +++ b/requests/equipment-frontend-request.md @@ -24,7 +24,7 @@ API 백엔드(26개 엔드포인트)는 개발 완료되어 개발서버에 배 | 1 | 설비 목록 | `/equipment` | 1순위 | DataTable + 필터 | | 2 | 설비 등록 | `/equipment/create` | 1순위 | 폼 | | 3 | 설비 상세 | `/equipment/:id` | 1순위 | 탭 3개 (기본정보/점검항목/수리이력) | -| 4 | 설비 수정 | `/equipment/:id/edit` | 1순위 | 등록과 동일 폼 + 사진 관리 | +| 4 | 설비 수정 | `/equipment/:id/edit` | 1순위 | 등록과 동일 폼 + 기존 사진 관리 | | 5 | 점검 그리드 | `/equipment/inspections` | 2순위 | 동적 그리드, 셀 토글 (가장 복잡) | | 6 | 수리이력 목록 | `/equipment/repairs` | 2순위 | DataTable + 필터 | | 7 | 수리이력 등록 | `/equipment/repairs/create` | 2순위 | 폼 | @@ -584,9 +584,10 @@ await api.post(`/v1/equipment/${id}/photos`, formData, { > 담당자/부담당자 드롭다운은 사용자 API에서 동적 로드 -**사진 관리 (수정 화면):** -- 설비 상세/수정 화면에서 사진 업로드/삭제 가능 -- 최대 10장 제한 +**사진 관리 (등록/수정 화면):** +- **등록 화면**: 사진을 미리 선택하면 대기열에 추가 + 미리보기 표시. 설비 저장 완료 후 자동 업로드. 드래그앤드롭, Ctrl+V 클립보드 붙여넣기 지원. +- **수정 화면**: 기존 사진 조회/삭제 + 새 사진 추가 가능 +- 최대 10장 제한 (설비당) --- @@ -759,6 +760,8 @@ await api.post(`/v1/equipment/${id}/photos`, formData, { - 파일당 최대 10MB - 사진 URL: `/api/v1/files/{id}/download` - 삭제 시 soft delete 처리 +- **등록 시 사진 업로드 흐름**: 사진을 미리 선택(대기열) → 설비 저장 → 생성된 ID로 사진 자동 업로드 +- **수정 시 사진 관리**: 페이지 로드 시 기존 사진 표시 → 추가/삭제 즉시 반영 --- @@ -821,4 +824,4 @@ curl -H "X-Api-Key: " \ --- -**최종 업데이트**: 2026-03-12 +**최종 업데이트**: 2026-03-12 (설비 등록 시 사진 업로드 기능 반영)