Files
sam-manage/app/Http/Controllers/Api/BizCertController.php

90 lines
1.9 KiB
PHP
Raw Permalink Normal View History

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\BizCertStoreRequest;
use App\Services\BizCertOcrService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
/**
* 사업자등록증 OCR API 컨트롤러
*/
class BizCertController extends Controller
{
public function __construct(
private BizCertOcrService $service
) {}
/**
* Claude Vision OCR 처리
*
* POST /api/biz-cert/ocr
*/
public function ocr(Request $request): JsonResponse
{
$request->validate([
'image' => 'required|string',
'raw_text' => 'nullable|string',
]);
$result = $this->service->processWithClaude(
$request->input('image'),
$request->input('raw_text')
);
if (! $result['ok']) {
return response()->json($result, 400);
}
return response()->json($result);
}
/**
* 저장된 목록 조회
*
* GET /api/biz-cert
*/
public function index(): JsonResponse
{
$list = $this->service->list();
return response()->json([
'ok' => true,
'data' => $list,
]);
}
/**
* 사업자등록증 데이터 저장
*
* POST /api/biz-cert
*/
public function store(BizCertStoreRequest $request): JsonResponse
{
$bizCert = $this->service->store($request->validated());
return response()->json([
'ok' => true,
'message' => '저장되었습니다.',
'data' => $bizCert,
]);
}
/**
* 삭제
*
* DELETE /api/biz-cert/{id}
*/
public function destroy(int $id): JsonResponse
{
$this->service->delete($id);
return response()->json([
'ok' => true,
'message' => '삭제되었습니다.',
]);
}
}