feat : 품목관리 API 추가

This commit is contained in:
2025-08-01 17:25:31 +09:00
parent 2a0f3471a8
commit 1aff3ab3ee
7 changed files with 310 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Http\Controllers\Api\V1;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Services\BomService;
use App\Helpers\ApiResponse;
class BomController
{
public function index(Request $request)
{
$title = 'BOM 목록 조회';
return ApiResponse::handle(function () use ($request) {
return BomService::getBoms($request);
}, $title, $title.' 실패');
}
public function store(Request $request)
{
$title = 'BOM 등록';
return ApiResponse::handle(function () use ($request) {
return BomService::setBom($request);
}, $title, $title.' 실패');
}
public function show(Request $request, int $id)
{
$title = '특정BOM 상세 조회';
return ApiResponse::handle(function () use ($request) {
return BomService::getBom($request);
}, $title, $title.' 실패');
}
public function update(Request $request, int $id)
{
$title = 'BOM 수정';
return ApiResponse::handle(function () use ($request) {
return BomService::updateBom($request);
}, $title, $title.' 실패');
}
public function destroy(Request $request, int $id)
{
$title = 'BOM 삭제';
return ApiResponse::handle(function () use ($request) {
return BomService::destoryBom($request);
}, $title, $title.' 실패');
}
}

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Api\V1;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Services\MeterialService;
use App\Helpers\ApiResponse;
class MaterialController
{
public function index(Request $request)
{
$title = '제품 목록 조회';
return ApiResponse::handle(function () use ($request) {
return MeterialService::getMeterials($request);
}, $title, $title.' 실패');
}
public function store(Request $request)
{
$title = '제품 등록';
return ApiResponse::handle(function () use ($request) {
return MeterialService::setMeterial($request);
}, $title, $title.' 실패');
}
public function show(Request $request, int $id)
{
$title = '특정제품 상세 조회';
return ApiResponse::handle(function () use ($id) {
return MeterialService::getMeterial($id);
}, $title, $title.' 실패');
}
public function update(Request $request, int $id)
{
$title = '제품 수정';
return ApiResponse::handle(function () use ($id) {
return MeterialService::updateMeterial($id);
}, $title, $title.' 실패');
}
public function destroy(Request $request, int $id)
{
$title = '제품 삭제';
return ApiResponse::handle(function () use ($id) {
return MeterialService::destoryMeterial($id);
}, $title, $title.' 실패');
}
}

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Http\Controllers\Api\V1;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Services\ModelService;
use App\Helpers\ApiResponse;
class ModelController
{
public function index(Request $request)
{
$title = '모델 목록 조회';
return ApiResponse::handle(function () use ($request) {
return ModelService::getModels($request);
}, $title, $title.' 실패');
}
public function store(Request $request)
{
$title = '모델 등록';
return ApiResponse::handle(function () use ($request) {
return ModelService::setModel($request);
}, $title, $title.' 실패');
}
public function show(Request $request, int $id)
{
$title = '특정모델 상세 조회';
return ApiResponse::handle(function () use ($id) {
return ModelService::getModel($id);
}, $title, $title.' 실패');
}
public function update(Request $request, int $id)
{
$title = '모델 수정';
return ApiResponse::handle(function () use ($id) {
return ModelService::updateModel($id);
}, $title, $title.' 실패');
}
public function destroy(Request $request, int $id)
{
$title = '모델 삭제';
return ApiResponse::handle(function () use ($id) {
return ModelService::destoryModel($id);
}, $title, $title.' 실패');
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Services;
use App\Helpers\ApiResponse;
use Illuminate\Support\Facades\DB;
use App\Models\Products\CommonCode;
use App\Models\Products\Bom;
class BomService
{
public static function getBoms()
{
$query = new Bom();
return ApiResponse::response('get', $query);
}
public static function setBom()
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
public static function getBom(int $id)
{
$query = Bom::find($id);
return ApiResponse::response('get', $query);
}
public static function updateBom(int $id)
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
public static function destoryBom(int $id)
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Services;
use App\Helpers\ApiResponse;
use Illuminate\Support\Facades\DB;
use App\Models\Products\CommonCode;
use App\Models\Materials\Material;
class MeterialService
{
public static function getMeterials()
{
$query = new Material();
return ApiResponse::response('get', $query);
}
public static function setMeterial()
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
public static function getMeterial(int $id)
{
$query = Material::find($id);
return ApiResponse::response('get', $query);
}
public static function updateMeterial(int $id)
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
public static function destoryMeterial(int $id)
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Services;
use App\Helpers\ApiResponse;
use App\Models\Products\Bom;
use Illuminate\Support\Facades\DB;
use App\Models\Products\CommonCode;
use App\Models\Products\Product;
class ModelService
{
public static function getModels()
{
$query = new Product();
return ApiResponse::response('get', $query);
}
public static function setModel()
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
public static function getModel(int $id)
{
$query = Bom::find($id);
return ApiResponse::response('get', $query);
}
public static function updateModel(int $id)
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
public static function destoryModel(int $id)
{
$query = DB::table('COM_CODE')
->select(['CODE_TP_ID', 'CODE_ID', 'CODE_VAL', 'CODE_DESC', 'USE_YN']);
return ApiResponse::response('get', $query);
}
}

View File

@@ -8,6 +8,9 @@
use App\Http\Controllers\Api\V1\AdminApiController;
use App\Http\Controllers\Api\V1\FileController;
use App\Http\Controllers\Api\V1\ProductController;
use App\Http\Controllers\Api\V1\MaterialController;
use App\Http\Controllers\Api\V1\ModelController;
use App\Http\Controllers\Api\V1\BomController;
// error test
Route::get('/test-error', function () {
@@ -61,6 +64,11 @@
});
// Material, Model, BOM API
Route::resource('materials', MaterialController::class)->except(['create', 'edit']); // 자재관리
Route::resource('models', ModelController::class)->except(['create', 'edit']); // 모델관리
Route::resource('boms', BomController::class)->except(['create', 'edit']); // BOM관리
});
});