Files
sam-api/app/Swagger/v1/DesignBomTemplateExtras.php
hskwon cc206fdbed style: Laravel Pint 코드 포맷팅 적용
- PSR-12 스타일 가이드 준수
- 302개 파일 스타일 이슈 자동 수정
- 코드 로직 변경 없음 (포맷팅만)
2025-11-06 17:45:49 +09:00

116 lines
4.5 KiB
PHP

<?php
namespace App\Swagger\v1;
/**
* @OA\Tag(
* name="Design BOM",
* description="Design-time BOM template operations"
* )
*/
class DesignBomTemplateExtras
{
/**
* @OA\Get(
* path="/api/v1/design/bom-templates/{templateId}/diff",
* tags={"Design BOM"},
* summary="Diff two BOM templates",
* security={{"ApiKeyAuth": {}, "BearerAuth": {}}},
*
* @OA\Parameter(name="templateId", in="path", required=true, @OA\Schema(type="integer")),
* @OA\Parameter(name="other_template_id", in="query", required=true, @OA\Schema(type="integer")),
*
* @OA\Response(
* response=200,
* description="Success",
*
* @OA\JsonContent(
* type="object",
*
* @OA\Property(property="success", type="boolean"),
* @OA\Property(property="message", type="string"),
* @OA\Property(property="data", type="object",
* @OA\Property(property="left_template_id", type="integer"),
* @OA\Property(property="right_template_id", type="integer"),
* @OA\Property(property="summary", type="object",
* @OA\Property(property="added", type="integer"),
* @OA\Property(property="removed", type="integer"),
* @OA\Property(property="changed", type="integer"),
* ),
* @OA\Property(property="added", type="array", @OA\Items(type="object",
* @OA\Property(property="ref_type", type="string", example="MATERIAL"),
* @OA\Property(property="ref_id", type="integer"),
* @OA\Property(property="qty", type="number"),
* @OA\Property(property="waste_rate", type="number"),
* @OA\Property(property="uom_id", type="integer", nullable=true),
* @OA\Property(property="notes", type="string", nullable=true),
* @OA\Property(property="sort_order", type="integer"),
* )),
* @OA\Property(property="removed", type="array", @OA\Items(ref="#/components/schemas/DesignBomItemDiffRow")),
* @OA\Property(property="changed", type="array", @OA\Items(type="object",
* @OA\Property(property="ref_type", type="string"),
* @OA\Property(property="ref_id", type="integer"),
* @OA\Property(property="changes", type="object")
* ))
* )
* )
* )
* )
*
* @OA\Post(
* path="/api/v1/design/bom-templates/{templateId}/clone",
* tags={"Design BOM"},
* summary="Clone a BOM template (deep copy)",
* security={{"ApiKeyAuth": {}, "BearerAuth": {}}},
*
* @OA\Parameter(name="templateId", in="path", required=true, @OA\Schema(type="integer")),
*
* @OA\RequestBody(
* required=false,
*
* @OA\JsonContent(type="object",
*
* @OA\Property(property="target_version_id", type="integer", nullable=true),
* @OA\Property(property="name", type="string", nullable=true),
* @OA\Property(property="is_primary", type="boolean", nullable=true),
* @OA\Property(property="notes", type="string", nullable=true)
* )
* ),
*
* @OA\Response(
* response=200,
* description="Cloned",
*
* @OA\JsonContent(
* type="object",
*
* @OA\Property(property="success", type="boolean"),
* @OA\Property(property="message", type="string"),
* @OA\Property(property="data", type="object",
* @OA\Property(property="id", type="integer"),
* @OA\Property(property="tenant_id", type="integer"),
* @OA\Property(property="model_version_id", type="integer"),
* @OA\Property(property="name", type="string"),
* @OA\Property(property="is_primary", type="boolean"),
* @OA\Property(property="notes", type="string", nullable=true)
* )
* )
* )
* )
*
* @OA\Schema(
* schema="DesignBomItemDiffRow",
* type="object",
*
* @OA\Property(property="ref_type", type="string", example="MATERIAL"),
* @OA\Property(property="ref_id", type="integer"),
* @OA\Property(property="qty", type="number"),
* @OA\Property(property="waste_rate", type="number"),
* @OA\Property(property="uom_id", type="integer", nullable=true),
* @OA\Property(property="notes", type="string", nullable=true),
* @OA\Property(property="sort_order", type="integer")
* )
*/
public function docs() {}
}