diff --git a/app/Services/ItemMaster/ItemPageService.php b/app/Services/ItemMaster/ItemPageService.php index 8ab424e..3bc51e9 100644 --- a/app/Services/ItemMaster/ItemPageService.php +++ b/app/Services/ItemMaster/ItemPageService.php @@ -15,29 +15,25 @@ class ItemPageService extends Service use LockCheckTrait; /** - * 페이지 목록 조회 (섹션/필드 중첩) + * 페이지 목록 조회 + * + * 섹션/필드 중첩 데이터는 init API 사용 권장 */ public function index(?string $itemType = null): Collection { $tenantId = $this->tenantId(); - $query = ItemPage::with([ - 'sections' => function ($query) { - $query->orderBy('order_no'); - }, - 'sections.fields' => function ($query) { - $query->orderBy('order_no'); - }, - 'sections.bomItems', - ]) - ->where('tenant_id', $tenantId) + $query = ItemPage::where('tenant_id', $tenantId) ->where('is_active', 1); if ($itemType) { $query->where('item_type', strtoupper($itemType)); } - return $query->get(); + // 각 페이지에 빈 sections 배열 설정 (호환성) + return $query->get()->each(function ($page) { + $page->setAttribute('sections', []); + }); } /** @@ -57,8 +53,8 @@ public function store(array $data): ItemPage 'created_by' => $userId, ]); - // 관계 로드 - $page->load(['sections']); + // 신규 페이지는 섹션이 없으므로 빈 배열 설정 + $page->setAttribute('sections', []); return $page; } @@ -85,7 +81,8 @@ public function update(int $id, array $data): ItemPage 'updated_by' => $userId, ]); - $page->load(['sections.fields', 'sections.bomItems']); + // 페이지 수정은 섹션에 영향 없음 - entity_relationships 기반 조회는 init API 사용 + $page->setAttribute('sections', []); return $page; }