$request->user()->dynamics()->get(), ]); } /** * Show the form for creating a new resource. */ public function create() { return Inertia::render('Dynamics/Create'); } /** * Store a newly created resource in storage. */ public function store(StoreDynamicRequest $request) { $dynamic = Dynamic::create($request->validated()); $dynamic->participants()->attach($request->user()->id, ['role' => 'owner']); return redirect()->route('dynamics.show', $dynamic); } /** * Display the specified resource. */ public function show(Request $request, Dynamic $dynamic, ActivityService $activityService) { $this->authorize('view', $dynamic); $activityService->updateCursor($request->user(), $dynamic); $dynamic->load(['ledgers.media', 'participants', 'chat']); $isOwner = $dynamic->participants() ->where('user_id', $request->user()->id) ->where('role', 'owner') ->exists(); return Inertia::render('Dynamics/Show', [ 'dynamic' => $dynamic, 'isOwner' => $isOwner, 'messages' => $dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(20), ]); } public function messages(Request $request, Dynamic $dynamic) { $this->authorize('view', $dynamic); return $dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(20); } /** * Show the form for editing the specified resource. */ public function edit(Dynamic $dynamic) { $this->authorize('update', $dynamic); return Inertia::render('Dynamics/Settings', [ 'dynamic' => $dynamic, ]); } /** * Update the specified resource in storage. */ public function update(UpdateDynamicRequest $request, Dynamic $dynamic) { $dynamic->update($request->validated()); return redirect()->route('dynamics.show', $dynamic); } /** * Remove the specified resource from storage. */ public function destroy(Dynamic $dynamic) { // } }