authorize('update', $dynamic); return Inertia::render('Ledgers/Create', [ 'dynamic' => $dynamic, ]); } /** * Store a newly created resource in storage. */ public function store(StoreLedgerRequest $request, Dynamic $dynamic) { $ledger = $dynamic->ledgers()->create($request->except('media')); if ($request->hasFile('media')) { foreach ($request->file('media') as $file) { $path = $file->store('media', 'public'); $ledger->media()->create([ 'file_path' => $path, 'file_name' => $file->getClientOriginalName(), 'mime_type' => $file->getMimeType(), ]); } } return redirect()->route('dynamics.show', $dynamic); } /** * Display the specified resource. */ public function show(Request $request, Dynamic $dynamic, Ledger $ledger, ActivityService $activityService) { $this->authorize('view', $ledger); $activityService->updateCursor($request->user(), $ledger); $dynamic->load('chat', 'participants'); $ledger->load([ 'media', 'mutations' => function ($query) { $query->latest(); }, 'mutations.user', 'mutations.media', 'mutations.chat.messages.user', 'mutations.chat.messages.media', 'mutations.chat.messages.subject' => function ($morphTo) { $morphTo->morphWith([ \App\Models\Mutation::class => ['ledger'], ]); } ]); $isOwner = $dynamic->participants() ->where('user_id', $request->user()->id) ->where('role', 'owner') ->exists(); return Inertia::render('Ledgers/Show', [ 'dynamic' => $dynamic, 'ledger' => $ledger, 'isOwner' => $isOwner, 'messages' => $dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(20), ]); } public function messages(Request $request, Dynamic $dynamic, Ledger $ledger) { $this->authorize('view', $ledger); return $dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(20); } /** * Show the form for editing the specified resource. */ public function edit(Ledger $ledger) { // } /** * Update the specified resource in storage. */ public function update(Request $request, Ledger $ledger) { // } /** * Remove the specified resource from storage. */ public function destroy(Ledger $ledger) { // } }