refactor: products/materials 테이블 및 관련 코드 삭제

- products, materials, product_components 테이블 삭제 마이그레이션
- FK 제약조건 정리 (orders, order_items, material_receipts, lots)
- 관련 Models 삭제: Product, Material, ProductComponent 등
- 관련 Controllers 삭제: ProductController, MaterialController, ProductBomItemController
- 관련 Services 삭제: ProductService, MaterialService, ProductBomService
- 관련 Requests, Swagger 파일 삭제
- 라우트 정리: /products, /materials 엔드포인트 제거

모든 품목 관리는 /items 엔드포인트로 통합됨
item_id_mappings 테이블에 ID 매핑 보존

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-14 00:20:09 +09:00
parent a486595d07
commit 039fd623df
23 changed files with 158 additions and 4111 deletions

View File

@@ -1,52 +0,0 @@
<?php
namespace App\Http\Controllers\Api\V1;
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Http\Requests\Material\MaterialStoreRequest;
use App\Http\Requests\Material\MaterialUpdateRequest;
use App\Services\MaterialService;
use Illuminate\Http\Request;
class MaterialController extends Controller
{
public function __construct(private MaterialService $service) {}
public function index(Request $request)
{
return ApiResponse::handle(function () use ($request) {
return $this->service->getMaterials($request->all());
}, __('message.material.fetched'));
}
public function store(MaterialStoreRequest $request)
{
return ApiResponse::handle(function () use ($request) {
// 동적 필드 지원을 위해 전체 입력값 전달 (Service에서 검증)
return $this->service->setMaterial($request->all());
}, __('message.material.created'));
}
public function show(int $id)
{
return ApiResponse::handle(function () use ($id) {
return $this->service->getMaterial($id);
}, __('message.material.fetched'));
}
public function update(MaterialUpdateRequest $request, int $id)
{
return ApiResponse::handle(function () use ($request, $id) {
// 동적 필드 지원을 위해 전체 입력값 전달 (Service에서 검증)
return $this->service->updateMaterial($id, $request->all());
}, __('message.material.updated'));
}
public function destroy(int $id)
{
return ApiResponse::handle(function () use ($id) {
return $this->service->destroyMaterial($id);
}, __('message.material.deleted'));
}
}