$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' => fn($query) => $query->withPivot('display_name'), 'chat.messages.user', 'chat.messages.media', '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('Dynamics/Show', [ 'dynamic' => $dynamic, 'isOwner' => $isOwner, ]); } /** * 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) { // } }