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>
This commit is contained in:
2025-12-21 01:10:38 +09:00
parent 496aec04f5
commit 65c5de2db1
5 changed files with 104 additions and 15 deletions

View File

@@ -76,6 +76,14 @@
'has_clients' => 'Cannot delete the client group because it has associated clients.',
'code_exists_in_deleted' => 'The same code exists in deleted data. Please permanently delete that code first or use a different code.',
// Item type validation
'item_type_required' => 'Item type (item_type) is required.',
'item_type_or_group_required' => 'Item type (item_type) or group ID (group_id) is required.',
'invalid_item_type' => 'Invalid item type.',
'invalid_group_id' => 'Invalid group ID or no item types exist in the specified group.',
'item_types_must_be_same_group' => 'When selecting multiple item types, all types must belong to the same group.',
'invalid_source_table' => 'Source table is not configured for this item type.',
// Item management related
'item' => [
'not_found' => 'Item not found.',