diff --git a/app/Http/Controllers/Sales/TenantProspectController.php b/app/Http/Controllers/Sales/TenantProspectController.php index 1c34d558..da404229 100644 --- a/app/Http/Controllers/Sales/TenantProspectController.php +++ b/app/Http/Controllers/Sales/TenantProspectController.php @@ -135,13 +135,17 @@ public function update(Request $request, int $id) 'contact_email' => 'nullable|email|max:100', 'address' => 'nullable|string|max:500', 'business_card' => 'nullable|image|max:5120', + 'id_card' => 'nullable|image|max:5120', + 'bankbook' => 'nullable|image|max:5120', 'memo' => 'nullable|string|max:1000', ]); $this->service->update( $prospect, $validated, - $request->file('business_card') + $request->file('business_card'), + $request->file('id_card'), + $request->file('bankbook') ); return redirect()->route('sales.prospects.show', $id) diff --git a/app/Services/Sales/TenantProspectService.php b/app/Services/Sales/TenantProspectService.php index 61b64922..504ce932 100644 --- a/app/Services/Sales/TenantProspectService.php +++ b/app/Services/Sales/TenantProspectService.php @@ -48,9 +48,14 @@ public function register(array $data, ?UploadedFile $businessCard = null): Tenan /** * 영업권 정보 수정 */ - public function update(TenantProspect $prospect, array $data, ?UploadedFile $businessCard = null): TenantProspect - { - return DB::transaction(function () use ($prospect, $data, $businessCard) { + public function update( + TenantProspect $prospect, + array $data, + ?UploadedFile $businessCard = null, + ?UploadedFile $idCard = null, + ?UploadedFile $bankbook = null + ): TenantProspect { + return DB::transaction(function () use ($prospect, $data, $businessCard, $idCard, $bankbook) { $updateData = [ 'company_name' => $data['company_name'], 'ceo_name' => $data['ceo_name'] ?? null, @@ -62,11 +67,26 @@ public function update(TenantProspect $prospect, array $data, ?UploadedFile $bus // 명함 이미지 교체 if ($businessCard) { - // 기존 이미지 삭제 if ($prospect->business_card_path) { Storage::disk('tenant')->delete($prospect->business_card_path); } - $updateData['business_card_path'] = $this->uploadBusinessCard($businessCard, $prospect->registered_by); + $updateData['business_card_path'] = $this->uploadAttachment($businessCard, $prospect->registered_by); + } + + // 신분증 이미지 교체 + if ($idCard) { + if ($prospect->id_card_path) { + Storage::disk('tenant')->delete($prospect->id_card_path); + } + $updateData['id_card_path'] = $this->uploadAttachment($idCard, $prospect->registered_by); + } + + // 통장사본 이미지 교체 + if ($bankbook) { + if ($prospect->bankbook_path) { + Storage::disk('tenant')->delete($prospect->bankbook_path); + } + $updateData['bankbook_path'] = $this->uploadAttachment($bankbook, $prospect->registered_by); } $prospect->update($updateData); @@ -225,9 +245,9 @@ public function getStats(?int $partnerId = null): array } /** - * 명함 이미지 업로드 + * 첨부파일 업로드 (명함, 신분증, 통장사본 등) */ - private function uploadBusinessCard(UploadedFile $file, int $userId): string + private function uploadAttachment(UploadedFile $file, int $userId): string { $storedName = Str::uuid() . '.' . $file->getClientOriginalExtension(); $filePath = "prospects/{$userId}/{$storedName}"; @@ -237,6 +257,14 @@ private function uploadBusinessCard(UploadedFile $file, int $userId): string return $filePath; } + /** + * 명함 이미지 업로드 (register에서 사용) + */ + private function uploadBusinessCard(UploadedFile $file, int $userId): string + { + return $this->uploadAttachment($file, $userId); + } + /** * 명함 이미지 삭제 */