work in progress

This commit is contained in:
Daan Meijer
2026-06-23 13:54:27 +02:00
parent d751cd4fdd
commit 1e33bfb50b
10 changed files with 70 additions and 25 deletions
+10 -4
View File
@@ -45,8 +45,9 @@ class ActivityService
return $cursor ? $cursor->read_at : Carbon::parse('1970-01-01');
}
public function createMessage($chat, $user, $content, $subject = null)
public function createMessage($dynamic, $user, $content, $subject = null)
{
$chat = $dynamic->getOrCreateChat();
$message = $chat->messages()->create([
'user_id' => $user ? $user->id : null,
'content' => $content,
@@ -92,6 +93,11 @@ class ActivityService
*/
public function getActivitiesForDynamic(Dynamic $dynamic): array
{
$chat = $dynamic->getOrCreateChat();
if (!$chat) {
return [];
}
$participants = $dynamic->participants()->withPivot('display_name')->get();
$participantsMap = $participants->reduce(function ($acc, $p) {
$acc[$p->id] = $p->pivot->display_name ?? $p->name;
@@ -99,7 +105,7 @@ class ActivityService
return $acc;
}, []);
$messages = Message::where('chat_id', $dynamic->chat->id)
$messages = Message::where('chat_id', $chat->id)
->with(['user', 'subject'])
->latest()
->get();
@@ -122,10 +128,10 @@ class ActivityService
/**
* Get unread activities grouped by active entities (Dynamics, Ledgers) for the given user.
*/
public function getUnreadDynamicsGrouped(User $user): array
public function getUnreadEntitiesGrouped(User $user): array
{
$groupedDynamics = [];
$participatingDynamics = $user->dynamics()->with('ledgers')->get();
$participatingDynamics = $user->dynamics()->with(['chat', 'ledgers'])->get();
foreach ($participatingDynamics as $dynamic) {
$readAt = $this->getCursorReadAt($user, $dynamic);