diff --git a/changes/20260319_nonconforming_model_hotfix.md b/changes/20260319_nonconforming_model_hotfix.md new file mode 100644 index 0000000..ef7da32 --- /dev/null +++ b/changes/20260319_nonconforming_model_hotfix.md @@ -0,0 +1,71 @@ +# 부적합관리 모델 Hotfix — User 경로 + MorphMap 등록 + +**날짜:** 2026-03-19 +**작업자:** Claude Code (FE 검수 중 발견 → 직접 수정) + +## 변경 개요 + +부적합관리 FE 화면검수 중 API 500 에러 2건 발견 → sam-api 직접 수정. + +--- + +## 수정 1: User 모델 경로 오류 + +**증상:** 부적합 등록 시 `[500] Class "App\Models\Users\User" not found` + +**원인:** `NonconformingReport.php` 모델에서 User 클래스 import 경로가 잘못됨 + +**수정 파일:** `app/Models/Materials/NonconformingReport.php` (라인 10) + +```php +// Before +use App\Models\Users\User; + +// After +use App\Models\Members\User; +``` + +**영향 범위:** `creator()`, `actionManager()`, `relatedEmployee()` 3개 관계 — 모든 상세 조회/등록/수정 API에 영향 + +**참고:** 프로젝트 내 다른 모델(`AdminService`, `Department` 등)은 모두 `App\Models\Members\User` 사용 중 + +--- + +## 수정 2: Polymorphic MorphMap 미등록 + +**증상:** 부적합 등록 시 `[500] No morph map defined for model [App\Models\Materials\NonconformingReport]` + +**원인:** `AppServiceProvider`에서 `Relation::enforceMorphMap`을 사용하는데, `NonconformingReport` 모델이 등록되지 않음 + +**수정 파일:** `app/Providers/AppServiceProvider.php` + +```php +// Before +Relation::enforceMorphMap([ + 'user' => User::class, + 'post' => Post::class, +]); + +// After +use App\Models\Materials\NonconformingReport; // import 추가 + +Relation::enforceMorphMap([ + 'user' => User::class, + 'post' => Post::class, + 'nonconforming_report' => NonconformingReport::class, // 추가 +]); +``` + +**영향 범위:** `files()` morphMany 관계 (첨부파일 polymorphic 연결) — 등록/수정 시 모델 저장 과정에서 morph type 해석 실패 + +--- + +## 검증 결과 + +| 항목 | 결과 | +|------|:----:| +| 부적합 등록 (POST) | ✅ | +| 상세 조회 (GET /6) | ✅ | +| 수정 페이지 데이터 로드 | ✅ | +| 상태 변경 (RECEIVED → ANALYZING → RESOLVED) | ✅ | +| 자재 내역 + 비용 계산 | ✅ |