fix(mobile): resolve user avatars, chat alignment, timestamp formatting, and payslips API

This commit is contained in:
2026-08-10 17:55:14 +08:00
parent 6fe1fe125e
commit 9597cbf99a
1468 changed files with 172818 additions and 65664 deletions

View File

@@ -25,8 +25,13 @@ class ConversationApiController extends Controller
->where('user_id', $user->id)
->pluck('conversation_id');
$typeFilter = $request->query('type');
$conversations = DB::table('mobile_conversations')
->whereIn('id', $convIds)
->when($typeFilter, function ($query, $type) {
return $query->where('type', $type);
})
->get()
->map(function ($c) use ($user) {
$lastMsg = DB::table('mobile_messages')
@@ -46,12 +51,19 @@ class ConversationApiController extends Controller
$participants = User::whereIn('id', $participantIds)
->select('id', 'name', 'email', 'avatar', 'type')
->get();
->get()
->map(function ($u) {
$u->avatar = check_file($u->avatar) ? get_file($u->avatar) : $u->avatar;
return $u;
});
$otherUser = $participants->firstWhere('id', '!=', $user->id);
return [
'id' => $c->id,
'type' => $c->type,
'name' => $c->name ?? 'Direct Chat',
'name' => $c->type === 'direct' && $otherUser ? $otherUser->name : ($c->name ?? 'Chat'),
'avatar' => $c->type === 'direct' && $otherUser ? $otherUser->avatar : null,
'last_message' => $lastMsg ? $lastMsg->content : 'No messages yet',
'last_message_at' => $lastMsg && $lastMsg->created_at ? date('h:i A', strtotime($lastMsg->created_at)) : date('h:i A'),
'unread_count' => $unreadCount,
@@ -243,13 +255,21 @@ class ConversationApiController extends Controller
->get()
->map(function ($m) {
$sender = User::find($m->sender_id);
if ($sender && !empty($sender->avatar)) {
$sender->avatar = get_file($sender->avatar);
}
return [
'id' => $m->id,
'conversation_id' => (int)$m->conversation_id,
'sender_id' => $m->sender_id,
'sender_name' => $sender ? $sender->name : 'User',
'sender' => $sender ? [
'id' => $sender->id,
'name' => $sender->name,
'avatar' => $sender->avatar,
] : null,
'content' => $m->content,
'created_at' => date('h:i A', strtotime($m->created_at)),
'created_at' => date('M d, h:i A', strtotime($m->created_at)),
];
});
@@ -301,7 +321,7 @@ class ConversationApiController extends Controller
'sender_id' => $user->id,
'sender_name' => $user->name,
'content' => $request->content,
'created_at' => date('h:i A'),
'created_at' => date('M d, h:i A'),
],
'errors' => null,
], 201);