diff --git a/app/Http/Controllers/AppVersionController.php b/app/Http/Controllers/AppVersionController.php index b264fa6c..58ae8096 100644 --- a/app/Http/Controllers/AppVersionController.php +++ b/app/Http/Controllers/AppVersionController.php @@ -47,6 +47,30 @@ public function store(Request $request): RedirectResponse ->with('success', '새 버전이 등록되었습니다.'); } + /** + * 버전 수정 + */ + public function update(Request $request, int $id): RedirectResponse + { + $request->validate([ + 'version_code' => "required|integer|min:1|unique:app_versions,version_code,{$id}", + 'version_name' => 'required|string|max:20', + 'platform' => 'required|in:android,ios', + 'release_notes' => 'nullable|string', + 'force_update' => 'nullable|boolean', + 'apk_file' => 'nullable|file|max:204800', + ]); + + $this->appVersionService->update( + $id, + $request->only(['version_code', 'version_name', 'platform', 'release_notes', 'force_update']), + $request->file('apk_file') + ); + + return redirect()->route('app-versions.index') + ->with('success', '버전이 수정되었습니다.'); + } + /** * 활성 토글 */ diff --git a/app/Services/AppVersionService.php b/app/Services/AppVersionService.php index 2276acd1..3fb2febd 100644 --- a/app/Services/AppVersionService.php +++ b/app/Services/AppVersionService.php @@ -40,6 +40,30 @@ public function store(array $data, ?UploadedFile $apkFile = null): AppVersion return AppVersion::create($data); } + /** + * 버전 수정 + */ + public function update(int $id, array $data, ?UploadedFile $apkFile = null): AppVersion + { + $version = AppVersion::findOrFail($id); + + if ($apkFile) { + // 기존 APK 삭제 + if ($version->apk_path && Storage::disk('app_releases')->exists($version->apk_path)) { + Storage::disk('app_releases')->delete($version->apk_path); + } + + $data['apk_original_name'] = $apkFile->getClientOriginalName(); + $data['apk_size'] = $apkFile->getSize(); + $data['apk_path'] = $apkFile->store('apk', 'app_releases'); + } + + $data['updated_by'] = auth()->id(); + $version->update($data); + + return $version; + } + /** * 활성 토글 */ diff --git a/resources/views/app-versions/index.blade.php b/resources/views/app-versions/index.blade.php index e5526dcf..429f8ead 100644 --- a/resources/views/app-versions/index.blade.php +++ b/resources/views/app-versions/index.blade.php @@ -166,12 +166,23 @@ class="rounded border-gray-300 text-blue-600 shadow-sm focus:ring-blue-500"> @elseif(!$isTrashed) -
+