Files
sam-api/app/Http/Controllers/V1/Equipment/EquipmentPhotoController.php
김보곤 6c208cfb2c refactor: [equipment] 사진 업로드를 R2(FileStorageSystem) 기반으로 전환
- GCS 스텁 코드를 Cloudflare R2 기반 실제 파일 업로드로 교체
- File 모델 import를 Boards\File에서 Commons\File로 수정
- StoreEquipmentPhotoRequest FormRequest 추가 (파일 검증)
- 다중 파일 업로드 지원 (최대 10장 제한)
- softDeleteFile 패턴 적용 (삭제 시 soft delete)
- ItemsFileController 패턴 준용 (R2 저장, 랜덤 파일명)
2026-03-12 13:45:43 +09:00

39 lines
1.1 KiB
PHP

<?php
namespace App\Http\Controllers\V1\Equipment;
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Http\Requests\Equipment\StoreEquipmentPhotoRequest;
use App\Services\Equipment\EquipmentPhotoService;
use Illuminate\Http\JsonResponse;
class EquipmentPhotoController extends Controller
{
public function __construct(private readonly EquipmentPhotoService $service) {}
public function index(int $id): JsonResponse
{
return ApiResponse::handle(
fn () => $this->service->index($id),
__('message.fetched')
);
}
public function store(StoreEquipmentPhotoRequest $request, int $id): JsonResponse
{
return ApiResponse::handle(
fn () => $this->service->store($id, $request->file('files')),
__('message.equipment.photo_uploaded')
);
}
public function destroy(int $id, int $fileId): JsonResponse
{
return ApiResponse::handle(
fn () => $this->service->destroy($id, $fileId),
__('message.deleted')
);
}
}