appVersionService->list(); return view('app-versions.index', compact('versions')); } /** * 새 버전 등록 */ public function store(Request $request): RedirectResponse { $request->validate([ 'version_code' => 'required|integer|min:1|unique:app_versions,version_code', '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', // 200MB ]); $this->appVersionService->store( $request->only(['version_code', 'version_name', 'platform', 'release_notes', 'force_update']), $request->file('apk_file') ); return redirect()->route('app-versions.index') ->with('success', '새 버전이 등록되었습니다.'); } /** * 활성 토글 */ public function toggleActive(int $id): RedirectResponse { $version = $this->appVersionService->toggleActive($id); $status = $version->is_active ? '활성화' : '비활성화'; return redirect()->route('app-versions.index') ->with('success', "v{$version->version_name}이 {$status}되었습니다."); } /** * 삭제 */ public function destroy(int $id): RedirectResponse { $this->appVersionService->destroy($id); return redirect()->route('app-versions.index') ->with('success', '버전이 삭제되었습니다.'); } }