feat: Items 테이블 통합 마이그레이션 Phase 0-5 구현
## 주요 변경사항 - Phase 0: 비표준 item_type 데이터 정규화 마이그레이션 - Phase 1.1: items 테이블 생성 (products + materials 통합) - Phase 1.2: item_details 테이블 생성 (1:1 확장 필드) - Phase 1.3: 데이터 이관 + item_id_mappings 테이블 생성 - Phase 3: item_pages.source_table 업데이트 - Phase 5: 참조 테이블 마이그레이션 (product_components, orders 등) ## 신규 파일 - app/Models/Items/Item.php - 통합 아이템 모델 - app/Models/Items/ItemDetail.php - 1:1 확장 필드 모델 - app/Services/ItemService.php - 통합 서비스 클래스 ## 수정 파일 - ItemPage.php - items 테이블 지원 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -103,15 +103,25 @@ public function allRelationships()
|
||||
public function getTargetModelClass(): ?string
|
||||
{
|
||||
$mapping = [
|
||||
'products' => \App\Models\Product::class,
|
||||
'materials' => \App\Models\Material::class,
|
||||
'items' => \App\Models\Items\Item::class,
|
||||
// 하위 호환성 (마이그레이션 완료 전까지)
|
||||
'products' => \App\Models\Products\Product::class,
|
||||
'materials' => \App\Models\Materials\Material::class,
|
||||
];
|
||||
|
||||
return $mapping[$this->source_table] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 제품 페이지인지 확인
|
||||
* 통합 품목 페이지인지 확인
|
||||
*/
|
||||
public function isItemPage(): bool
|
||||
{
|
||||
return $this->source_table === 'items';
|
||||
}
|
||||
|
||||
/**
|
||||
* 제품 페이지인지 확인 (하위 호환성)
|
||||
*/
|
||||
public function isProductPage(): bool
|
||||
{
|
||||
@@ -119,10 +129,26 @@ public function isProductPage(): bool
|
||||
}
|
||||
|
||||
/**
|
||||
* 자재 페이지인지 확인
|
||||
* 자재 페이지인지 확인 (하위 호환성)
|
||||
*/
|
||||
public function isMaterialPage(): bool
|
||||
{
|
||||
return $this->source_table === 'materials';
|
||||
}
|
||||
|
||||
/**
|
||||
* Product 타입 품목인지 확인 (items 테이블 기준)
|
||||
*/
|
||||
public function isProductType(): bool
|
||||
{
|
||||
return in_array($this->item_type, ['FG', 'PT']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Material 타입 품목인지 확인 (items 테이블 기준)
|
||||
*/
|
||||
public function isMaterialType(): bool
|
||||
{
|
||||
return in_array($this->item_type, ['SM', 'RM', 'CS']);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user