# 품목기준관리 - 백엔드 통합 대기 작업

**작성일**: 2025-11-26
**상태**: 백엔드 통합 작업 대기 중

---

## 현재 상황 요약

### 해결된 이슈

1. **섹션 순서 변경 422 에러**
   - 원인: 백엔드가 `items` 필드를 기대하는데 프론트가 `section_orders` 전송
   - 수정 파일:
     - `src/types/item-master-api.ts` - `SectionReorderRequest.items`로 변경
     - `src/contexts/ItemMasterContext.tsx` - `reorderSections` 함수 수정

2. **response.data.map is not a function 에러**
   - 원인: 백엔드 응답이 배열이 아닌 경우 처리 누락
   - 수정: 배열/비배열 응답 모두 처리하도록 조건문 추가

3. **불러오기 다이얼로그에 마스터 항목 미표시**
   - 수정 파일:
     - `src/components/items/ItemMasterDataManagement/dialogs/ImportFieldDialog.tsx`
     - `src/components/items/ItemMasterDataManagement.tsx`
   - 변경 내용: 마스터 항목 / 독립 필드 탭 분리

---

## 백엔드 통합 대기 중인 이슈

### 데이터 동기화 문제

**현상**:
- 계층구조에서 섹션 내 항목 생성 시 → 마스터항목 탭, 속성 탭, 불러오기에도 표시됨
- 원인: `GET /v1/item-master/fields` API가 모든 필드를 반환 (독립 필드만 반환해야 함)

**백엔드 요청 사항**:
1. `GET /v1/item-master/fields` → `section_id IS NULL`인 필드만 반환
2. 마스터 항목 + 섹션 필드 통합 구조 검토

### 현재 데이터 구조 (분리됨)

```
item_master_fields 테이블 (마스터 항목)
├─ 항목 탭에서 생성/관리
├─ 속성 탭 서브탭으로 표시
└─ 불러오기 시 "복사"하여 새 필드 생성

item_fields 테이블 (실제 필드)
├─ section_id != null → 섹션 필드 (계층구조/섹션 탭)
└─ section_id = null → 독립 필드 (불러오기에서 "연결")
```

### 예상되는 통합 구조 (백엔드 작업 중)

```
통합된 필드 테이블
├─ is_master = true → 마스터 필드 (템플릿)
├─ section_id != null → 섹션 필드
└─ section_id = null, is_master = false → 독립 필드

→ 마스터 필드 수정 시 연결된 모든 필드에 반영
```

---

## 프론트엔드 수정 필요 사항 (백엔드 통합 후)

### 1. API 응답 구조 변경 대응
- `InitResponse` 타입 수정 (통합된 필드 구조)
- `transformers.ts` 변환 로직 수정

### 2. Context 수정
- `itemMasterFields` vs `independentFields` 통합 가능성
- 필드 CRUD 함수 통합

### 3. UI 수정
- ImportFieldDialog 탭 구조 재검토 (통합되면 탭 불필요할 수 있음)
- 데이터 동기화 로직 단순화

---

## 관련 파일 목록

### 수정된 파일 (2025-11-26)
- `src/types/item-master-api.ts`
- `src/contexts/ItemMasterContext.tsx`
- `src/lib/api/error-handler.ts`
- `src/components/items/ItemMasterDataManagement.tsx`
- `src/components/items/ItemMasterDataManagement/dialogs/ImportFieldDialog.tsx`

### 참고할 파일
- `src/lib/api/item-master.ts` - API 호출 함수
- `src/lib/api/transformers.ts` - 응답 변환 함수
- `src/components/items/ItemMasterDataManagement/hooks/useTabManagement.ts` - 속성 탭 생성 로직

---

## 다음 작업 체크리스트

- [ ] 백엔드 통합 API 완료 확인
- [ ] 새 API 응답 구조 확인 및 타입 수정
- [ ] Context 데이터 구조 통합
- [ ] ImportFieldDialog 통합 여부 결정
- [ ] 테스트: 마스터 항목 수정 → 연결된 필드 동기화 확인