- GuiderailModelController/Service/Resource: 가이드레일/케이스/하단마감재 통합 CRUD - item_category 필터 (GUIDERAIL_MODEL/SHUTTERBOX_MODEL/BOTTOMBAR_MODEL) - BendingItemResource: legacy_bending_num 노출 추가 - ApiKeyMiddleware: guiderail-models, files 화이트리스트 추가 - Swagger: BendingItemApi, GuiderailModelApi 문서 (케이스/하단마감재 필드 포함) - 마이그레이션 커맨드 5개: GuiderailImportLegacy, BendingProductImportLegacy, BendingImportImages, BendingModelImportImages, BendingModelImportAssemblyImages - 데이터: GR 20건 + SB 30건 + BB 10건 + 이미지 473건 R2 업로드
139 lines
6.6 KiB
PHP
139 lines
6.6 KiB
PHP
<?php
|
|
|
|
namespace App\Swagger\v1;
|
|
|
|
/**
|
|
* @OA\Tag(name="BendingItem", description="절곡품 기초관리")
|
|
*
|
|
* @OA\Schema(
|
|
* schema="BendingItem",
|
|
* @OA\Property(property="id", type="integer", example=15862),
|
|
* @OA\Property(property="code", type="string", example="BD-BE-30"),
|
|
* @OA\Property(property="name", type="string", example="하단마감재(스크린) EGI 3000mm"),
|
|
* @OA\Property(property="item_type", type="string", example="PT"),
|
|
* @OA\Property(property="item_category", type="string", example="BENDING"),
|
|
* @OA\Property(property="unit", type="string", example="EA"),
|
|
* @OA\Property(property="is_active", type="boolean", example=true),
|
|
* @OA\Property(property="item_name", type="string", example="하단마감재"),
|
|
* @OA\Property(property="item_sep", type="string", enum={"스크린","철재"}),
|
|
* @OA\Property(property="item_bending", type="string", example="하단마감재"),
|
|
* @OA\Property(property="item_spec", type="string", nullable=true, example="60*40"),
|
|
* @OA\Property(property="material", type="string", example="EGI 1.55T"),
|
|
* @OA\Property(property="model_name", type="string", nullable=true, example="KSS01"),
|
|
* @OA\Property(property="model_UA", type="string", nullable=true, enum={"인정","비인정"}),
|
|
* @OA\Property(property="search_keyword", type="string", nullable=true),
|
|
* @OA\Property(property="rail_width", type="integer", nullable=true),
|
|
* @OA\Property(property="registration_date", type="string", format="date", nullable=true),
|
|
* @OA\Property(property="author", type="string", nullable=true),
|
|
* @OA\Property(property="memo", type="string", nullable=true),
|
|
* @OA\Property(property="exit_direction", type="string", nullable=true),
|
|
* @OA\Property(property="front_bottom_width", type="integer", nullable=true),
|
|
* @OA\Property(property="box_width", type="integer", nullable=true),
|
|
* @OA\Property(property="box_height", type="integer", nullable=true),
|
|
* @OA\Property(property="bendingData", type="array", nullable=true, @OA\Items(
|
|
* @OA\Property(property="no", type="integer"),
|
|
* @OA\Property(property="input", type="number"),
|
|
* @OA\Property(property="rate", type="string"),
|
|
* @OA\Property(property="sum", type="number"),
|
|
* @OA\Property(property="color", type="boolean"),
|
|
* @OA\Property(property="aAngle", type="boolean")
|
|
* )),
|
|
* @OA\Property(property="prefix", type="string", nullable=true, example="BE"),
|
|
* @OA\Property(property="length_code", type="string", nullable=true, example="30"),
|
|
* @OA\Property(property="length_mm", type="integer", nullable=true, example=3000),
|
|
* @OA\Property(property="legacy_bending_num", type="integer", nullable=true, description="레거시 chandj bending.num (운영 전 삭제 예정)"),
|
|
* @OA\Property(property="width_sum", type="integer", nullable=true, example=193),
|
|
* @OA\Property(property="bend_count", type="integer", example=5),
|
|
* @OA\Property(property="created_at", type="string", format="date-time"),
|
|
* @OA\Property(property="updated_at", type="string", format="date-time")
|
|
* )
|
|
*/
|
|
class BendingItemApi
|
|
{
|
|
/**
|
|
* @OA\Get(
|
|
* path="/api/v1/bending-items",
|
|
* tags={"BendingItem"},
|
|
* summary="절곡품 목록 조회",
|
|
* @OA\Parameter(name="item_sep", in="query", required=false, @OA\Schema(type="string", enum={"스크린","철재"})),
|
|
* @OA\Parameter(name="item_bending", in="query", required=false, @OA\Schema(type="string")),
|
|
* @OA\Parameter(name="material", in="query", required=false, @OA\Schema(type="string")),
|
|
* @OA\Parameter(name="model_UA", in="query", required=false, @OA\Schema(type="string", enum={"인정","비인정"})),
|
|
* @OA\Parameter(name="search", in="query", required=false, @OA\Schema(type="string")),
|
|
* @OA\Parameter(name="page", in="query", required=false, @OA\Schema(type="integer")),
|
|
* @OA\Parameter(name="size", in="query", required=false, @OA\Schema(type="integer", default=50)),
|
|
* @OA\Response(response=200, description="성공")
|
|
* )
|
|
*/
|
|
public function index() {}
|
|
|
|
/**
|
|
* @OA\Get(
|
|
* path="/api/v1/bending-items/filters",
|
|
* tags={"BendingItem"},
|
|
* summary="절곡품 필터 옵션 조회",
|
|
* @OA\Response(response=200, description="성공")
|
|
* )
|
|
*/
|
|
public function filters() {}
|
|
|
|
/**
|
|
* @OA\Get(
|
|
* path="/api/v1/bending-items/{id}",
|
|
* tags={"BendingItem"},
|
|
* summary="절곡품 상세 조회",
|
|
* @OA\Parameter(name="id", in="path", required=true, @OA\Schema(type="integer")),
|
|
* @OA\Response(response=200, description="성공")
|
|
* )
|
|
*/
|
|
public function show() {}
|
|
|
|
/**
|
|
* @OA\Post(
|
|
* path="/api/v1/bending-items",
|
|
* tags={"BendingItem"},
|
|
* summary="절곡품 등록",
|
|
* @OA\RequestBody(@OA\JsonContent(
|
|
* required={"code","name","item_name","item_sep","item_bending","material"},
|
|
* @OA\Property(property="code", type="string"),
|
|
* @OA\Property(property="name", type="string"),
|
|
* @OA\Property(property="item_name", type="string"),
|
|
* @OA\Property(property="item_sep", type="string", enum={"스크린","철재"}),
|
|
* @OA\Property(property="item_bending", type="string"),
|
|
* @OA\Property(property="material", type="string"),
|
|
* @OA\Property(property="bendingData", type="array", nullable=true, @OA\Items(type="object"))
|
|
* )),
|
|
* @OA\Response(response=200, description="성공")
|
|
* )
|
|
*/
|
|
public function store() {}
|
|
|
|
/**
|
|
* @OA\Put(
|
|
* path="/api/v1/bending-items/{id}",
|
|
* tags={"BendingItem"},
|
|
* summary="절곡품 수정",
|
|
* @OA\Parameter(name="id", in="path", required=true, @OA\Schema(type="integer")),
|
|
* @OA\RequestBody(@OA\JsonContent(
|
|
* @OA\Property(property="code", type="string"),
|
|
* @OA\Property(property="name", type="string"),
|
|
* @OA\Property(property="memo", type="string"),
|
|
* @OA\Property(property="bendingData", type="array", nullable=true, @OA\Items(type="object"))
|
|
* )),
|
|
* @OA\Response(response=200, description="성공")
|
|
* )
|
|
*/
|
|
public function update() {}
|
|
|
|
/**
|
|
* @OA\Delete(
|
|
* path="/api/v1/bending-items/{id}",
|
|
* tags={"BendingItem"},
|
|
* summary="절곡품 삭제",
|
|
* @OA\Parameter(name="id", in="path", required=true, @OA\Schema(type="integer")),
|
|
* @OA\Response(response=200, description="성공")
|
|
* )
|
|
*/
|
|
public function destroy() {}
|
|
}
|