DynamicResource::collection($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']); return Inertia::render('Dynamics/Show', [ 'dynamic' => new DynamicResource($dynamic), 'ledgers' => LedgerResource::collection($dynamic->ledgers), 'participants' => UserResource::collection($dynamic->participants), 'messages' => MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(10)), 'can' => [ 'update' => $request->user()->can('update', $dynamic), ], ]); } public function messages(Request $request, Dynamic $dynamic) { $this->authorize('view', $dynamic); return MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(10)); } /** * Show the form for editing the specified resource. */ public function edit(Dynamic $dynamic) { $this->authorize('update', $dynamic); return Inertia::render('Dynamics/Settings', [ 'dynamic' => new DynamicResource($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) { // } }