Files
sam-api/lang/en/error.php
hskwon b6ff56023f refactor: BOM 시스템 정리 및 API 구조 최적화
## 주요 변경사항

### BOM 시스템 통합 및 정리
- 기본 BOM 시스템 완전 제거 (미완성 3-tier 구조)
  - app/Http/Controllers/Api/V1/BomController.php 삭제
  - app/Services/BomService.php 삭제
  - app/Models/Products/Bom.php 삭제
  - app/Models/Products/BomItem.php 삭제
- BOM 역할 명확화: Product BOM (운영용) + Design BOM (설계용)
- Tag 모델에서 불필요한 BOM 참조 제거

### API 그룹핑 최적화
- Products & Materials 통합: /v1/products/materials/*
- Settings & Configuration 통합: /v1/settings/*
  - 필드 설정: /v1/settings/fields/*
  - 옵션 관리: /v1/settings/options/*
  - 공통 코드: /v1/settings/common/*
- 기존 분산된 라우트 통합으로 일관성 향상

### 번역 완성도 향상
- 영어 에러 메시지 누락 항목 추가
- Settings, Materials, File 관련 메시지 보완
- 한국어/영어 번역 파일 동기화 완료

### 시스템 품질 개선
- API 구조 논리적 재구성으로 사용자 경험 향상
- 코드 복잡도 감소 및 유지보수성 개선
- 불필요한 컨트롤러/서비스 제거로 시스템 단순화

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 20:35:17 +09:00

75 lines
2.6 KiB
PHP

<?php
declare(strict_types=1);
/**
* System/Domain error messages (client-facing, fixed strings)
* - Not DB-driven
* - Used in global handler/service exceptions
* - Example: throw new NotFoundHttpException(__('error.not_found'));
*/
return [
// 4xx Common
'not_found' => 'The requested URI or data was not found.', // 404
'tenant_id' => 'No active tenant is set.', // 400 (Service::tenantId() missing)
'unauthenticated' => 'Authentication failed.', // 401
'forbidden' => 'You do not have permission for this request.', // 403
'bad_request' => 'Invalid request.', // 400
// Validation / Parameters
'validation_failed' => 'Request data validation failed.', // 422
'missing_parameter' => 'A required parameter is missing.', // 400
// Resource-specific (optional, with :resource placeholder)
'not_found_resource' => ':resource could not be found.', // 404
// Business rules
'duplicate' => 'Duplicate data exists.',
'conflict' => 'The request conflicts with the current state.', // 409
'state_invalid' => 'The current state does not allow this operation.', // 400/409
// Server errors
'server_error' => 'An internal server error occurred.', // 5xx
// Estimate related errors
'estimate' => [
'cannot_delete_sent_or_approved' => 'Cannot delete estimates that have been sent or approved.',
'invalid_status_transition' => 'Cannot change status from the current state.',
],
// BOM template related
'bom_template' => [
'not_found' => 'No applicable BOM template found.',
],
// Model set related
'modelset' => [
'has_dependencies' => 'Cannot delete due to associated products or subcategories.',
],
// Settings management related
'settings' => [
'field_not_found' => 'Field setting not found.',
'option_group_not_found' => 'Option group not found.',
'common_code_duplicate' => 'Duplicate common code exists.',
'invalid_field_type' => 'Invalid field type.',
],
// Materials management related
'materials' => [
'not_found' => 'Material information not found.',
'duplicate_code' => 'Duplicate material code.',
'in_use_cannot_delete' => 'Cannot delete material that is currently in use.',
],
// File management related
'file' => [
'not_found' => 'File not found.',
'upload_failed' => 'File upload failed.',
'invalid_file_type' => 'Invalid file type.',
'file_too_large' => 'File size is too large.',
],
];