feat(mng): 사업자등록증 OCR 기능 구현
## 주요 변경사항
- BizCertController: 내부 API (OCR, CRUD)
- BizCertOcrService: Claude Vision API 연동, Tesseract.js 지원
- BizCert 모델 및 FormRequest 추가
- config/services.php에 Claude API 설정 추가
## 프론트엔드
- business-ocr.blade.php: layouts.app 레이아웃 적용
- JS/AI 토글 모드 (Tesseract.js / Claude Vision)
- 이미지 전처리 추가 (그레이스케일, 대비 강화, 이진화)
- SweetAlert2 연동 (토스트, 삭제 확인)
## API 엔드포인트
- POST /api/biz-cert/ocr - OCR 처리
- GET /api/biz-cert - 목록 조회
- POST /api/biz-cert - 저장
- DELETE /api/biz-cert/{id} - 삭제
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
37
app/Http/Requests/BizCertStoreRequest.php
Normal file
37
app/Http/Requests/BizCertStoreRequest.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class BizCertStoreRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'biz_no' => 'required|string|max:12',
|
||||
'company_name' => 'required|string|max:100',
|
||||
'representative' => 'nullable|string|max:50',
|
||||
'open_date' => 'nullable|date',
|
||||
'address' => 'nullable|string|max:255',
|
||||
'biz_type' => 'nullable|string|max:100',
|
||||
'biz_item' => 'nullable|string|max:255',
|
||||
'issue_date' => 'nullable|date',
|
||||
'raw_text' => 'nullable|string',
|
||||
'ocr_method' => 'nullable|string|max:20',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'biz_no.required' => '사업자등록번호는 필수입니다.',
|
||||
'company_name.required' => '상호명은 필수입니다.',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user