validate([ 'file' => 'required|file|mimes:pdf|max:512000', // 500MB max 'title' => 'required|string|max:255', 'summary' => 'nullable|string', ]); // Get the uploaded file $file = $request->file('file'); // Generate unique filename $storedFilename = Str::uuid() . '.pdf'; // Store file in storage/app/public/documents $filePath = $file->storeAs('documents', $storedFilename, 'public'); // Get the highest display order for this entry $maxOrder = $docketEntry->documents()->max('display_order') ?? -1; // Create document record Document::create([ 'docket_entry_id' => $docketEntry->id, 'title' => $validated['title'], 'original_filename' => $file->getClientOriginalName(), 'stored_filename' => $storedFilename, 'file_path' => $filePath, 'file_size' => $file->getSize(), 'mime_type' => $file->getMimeType(), 'summary' => $validated['summary'] ?? null, 'display_order' => $maxOrder + 1, ]); return redirect()->route('admin.docket-entries.show', $docketEntry->id) ->with('success', 'Document uploaded successfully.'); } /** * Remove the specified document. */ public function destroy(Document $document): RedirectResponse { $docketEntryId = $document->docket_entry_id; // Delete the file from storage if (Storage::disk('public')->exists($document->file_path)) { Storage::disk('public')->delete($document->file_path); } // Delete the database record $document->delete(); return redirect()->route('admin.docket-entries.show', $docketEntryId) ->with('success', 'Document deleted successfully.'); } }