Files
sam-api/app/Http/Requests/Item/ItemBatchDeleteRequest.php
kent 65c5de2db1 feat(api): Items API 멀티 item_type 지원 및 파라미터 일관성 개선
- ItemService: 콤마 구분 멀티 item_type 지원 (예: type=FG,PT)
  - parseItemTypes(): 콤마 구분 문자열을 배열로 파싱
  - validateItemTypesInSameGroup(): 같은 group_id 검증
  - index(), search() 메서드에 멀티 타입 로직 적용

- ItemsController: type/item_type 파라미터 일관성
  - show(), showByCode(), destroy() 메서드에서 type 파라미터 지원
  - 모든 엔드포인트에서 type 또는 item_type 둘 다 허용

- ItemBatchDeleteRequest: prepareForValidation()으로 type→item_type 매핑

- i18n: item_types_must_be_same_group 에러 메시지 추가 (ko/en)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 01:10:38 +09:00

45 lines
1.4 KiB
PHP

<?php
namespace App\Http\Requests\Item;
use Illuminate\Foundation\Http\FormRequest;
class ItemBatchDeleteRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
protected function prepareForValidation(): void
{
// type 파라미터를 item_type으로 매핑 (일관성)
if ($this->has('type') && ! $this->has('item_type')) {
$this->merge(['item_type' => $this->input('type')]);
}
}
public function rules(): array
{
return [
'item_type' => 'required|string|in:FG,PT,SM,RM,CS',
'ids' => 'required|array|min:1',
'ids.*' => 'required|integer|min:1',
];
}
public function messages(): array
{
return [
'item_type.required' => '품목 유형은 필수입니다.',
'item_type.in' => '품목 유형은 FG, PT, SM, RM, CS 중 하나여야 합니다.',
'ids.required' => '삭제할 품목 ID 목록은 필수입니다.',
'ids.array' => '품목 ID 목록은 배열이어야 합니다.',
'ids.min' => '삭제할 품목을 하나 이상 선택하세요.',
'ids.*.required' => '품목 ID는 필수입니다.',
'ids.*.integer' => '품목 ID는 정수여야 합니다.',
'ids.*.min' => '품목 ID는 1 이상이어야 합니다.',
];
}
}