feat: Phase 1.2 - 다건 BOM 기반 자동산출 API 구현

- QuoteBomBulkCalculateRequest 생성 (React camelCase → API 약어 변환)
- QuoteCalculationService.calculateBomBulk() 메서드 추가
- POST /api/v1/quotes/calculate/bom/bulk 엔드포인트 추가
- Swagger 스키마 및 문서 업데이트

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-01-02 13:13:50 +09:00
parent 660300cebf
commit 4e59bbf574
6 changed files with 499 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Http\Requests\Quote\QuoteBomBulkCalculateRequest;
use App\Http\Requests\Quote\QuoteBomCalculateRequest;
use App\Http\Requests\Quote\QuoteBulkDeleteRequest;
use App\Http\Requests\Quote\QuoteCalculateRequest;
@@ -162,6 +163,23 @@ public function calculateBom(QuoteBomCalculateRequest $request)
}, __('message.quote.calculated'));
}
/**
* 다건 BOM 기반 자동산출
*
* React 견적등록 화면에서 여러 품목의 완제품 코드와 입력 변수를 받아
* BOM 기반으로 일괄 계산합니다.
* React QuoteFormItem 필드명(camelCase)과 API 변수명(약어) 모두 지원합니다.
*/
public function calculateBomBulk(QuoteBomBulkCalculateRequest $request)
{
return ApiResponse::handle(function () use ($request) {
return $this->calculationService->calculateBomBulk(
$request->getInputItems(),
$request->boolean('debug', false)
);
}, __('message.quote.bulk_calculated'));
}
/**
* 자동산출 입력 스키마 조회
*/