paginate(15); return view('admin.galeria.index', compact('galerias')); } public function create(): View { return view('admin.galeria.create'); } public function store(GaleriaRequest $request): RedirectResponse { try { $data = $request->validated(); Log::info('GaleriaRequest validated', $data); if ($request->hasFile('archivo')) { Log::info('Has archivo file', ['file' => $request->file('archivo')->getClientOriginalName()]); $data['archivo'] = $this->uploadFile($request->file('archivo'), 'galeria'); } else { Log::warning('No archivo file in request'); Log::info('All files:', ['files' => $request->allFiles()]); } if ($request->hasFile('thumbnail')) { $data['thumbnail'] = $this->uploadFile($request->file('thumbnail'), 'galeria/thumbnails'); } $data['activo'] = $request->has('activo'); $data['orden'] = $data['orden'] ?? 0; Galeria::create($data); return redirect()->route('admin.galeria.index')->with('success', 'Modelo registrado correctamente.'); } catch (\Exception $e) { Log::error('Error creating Galeria: '.$e->getMessage()); return redirect()->back()->with('error', 'Error al guardar: '.$e->getMessage())->withInput(); } } public function edit(Galeria $galeria): View { return view('admin.galeria.edit', compact('galeria')); } public function update(GaleriaRequest $request, Galeria $galeria): RedirectResponse { try { $data = $request->validated(); if ($request->hasFile('archivo')) { if ($galeria->archivo) { Storage::disk('public')->delete($galeria->archivo); } $data['archivo'] = $this->uploadFile($request->file('archivo'), 'galeria'); } if ($request->hasFile('thumbnail')) { if ($galeria->thumbnail) { Storage::disk('public')->delete($galeria->thumbnail); } $data['thumbnail'] = $this->uploadFile($request->file('thumbnail'), 'galeria/thumbnails'); } $data['activo'] = $request->has('activo'); $data['orden'] = $data['orden'] ?? $galeria->orden; $galeria->update($data); return redirect()->route('admin.galeria.index')->with('success', 'Modelo actualizado correctamente.'); } catch (\Exception $e) { Log::error('Error updating Galeria: '.$e->getMessage()); return redirect()->back()->with('error', 'Error al actualizar: '.$e->getMessage())->withInput(); } } public function destroy(Galeria $galeria): RedirectResponse { if ($galeria->archivo) { Storage::disk('public')->delete($galeria->archivo); } if ($galeria->thumbnail) { Storage::disk('public')->delete($galeria->thumbnail); } $galeria->delete(); return redirect()->route('admin.galeria.index')->with('success', 'Modelo eliminado correctamente.'); } private function uploadFile($file, string $directory): string { return $file->store($directory, 'public'); } }