@if(isset($chat) && $chat->messages->count() > 0)
@php
// Group messages by DATE only (Y-m-d) for date separators
$messagesByDate = $chat->messages->groupBy(function ($message) {
return $message->created_at->format('Y-m-d');
});
@endphp
@foreach ($messagesByDate as $dateKey => $dayMessages)
@php
$dateCarbon = \Carbon\Carbon::parse($dateKey);
$fullDateLabel = $dateCarbon->locale('ar')->translatedFormat('l، j F Y');
$daysDiff = (int) $dateCarbon->diffInDays(now(), false);
if ($dateCarbon->isToday()) {
$dateLabel = 'اليوم';
} elseif ($dateCarbon->isYesterday()) {
$dateLabel = 'أمس';
} else {
$dateLabel = 'منذ ' . $daysDiff . ' ' . ($daysDiff >= 3 && $daysDiff <= 10 ? 'أيام' : 'يوم');
}
@endphp
{{-- Date Separator --}}
{{ $dateLabel }}
@foreach($dayMessages as $msg)
@php
$sender = $msg->sender_id;
$attachments = $chat->media()->where('collection_name', 'chats')->where('custom_properties->message_id', $msg->id)->get();
// Determine online status
$msgUser = ($sender == getCurrentUser()->id) ? $current : $other;
$msgIsOnline = false;
if($msgUser && $msgUser->last_login) {
try {
$msgIsOnline = \Carbon\Carbon::parse($msgUser->last_login)->diffInMinutes(now()) < 10;
} catch (\Exception $e) {
$msgIsOnline = false;
}
}
@endphp
@if($sender == getCurrentUser()->id)
@if($current->isFreelancer())
@else

@endif
{!! format_text($msg->message) !!}
@if($attachments->count() > 0)
@foreach($attachments as $media)
@php
$mediaExt = strtolower(pathinfo($media->file_name, PATHINFO_EXTENSION));
$isAudioMedia = str_starts_with($media->mime_type ?? '', 'audio/') || in_array($mediaExt, ['webm','ogg','mp3','m4a','wav','aac','opus']);
$isImageMedia = str_starts_with($media->mime_type ?? '', 'image/') || in_array($mediaExt, ['jpg','jpeg','png','gif','webp','bmp','svg']);
@endphp
@if($isAudioMedia)
@elseif($isImageMedia)
@else
{{$media->file_name}}
{{number_format($media->size / 1024, 2)}} KB
تحميل
@endif
@endforeach
@endif
@else
@if($other->isFreelancer())
@else

@endif
{!! format_text($msg->message) !!}
@if($attachments->count() > 0)
@foreach($attachments as $media)
@php
$mediaExt = strtolower(pathinfo($media->file_name, PATHINFO_EXTENSION));
$isAudioMedia = str_starts_with($media->mime_type ?? '', 'audio/') || in_array($mediaExt, ['webm','ogg','mp3','m4a','wav','aac','opus']);
$isImageMedia = str_starts_with($media->mime_type ?? '', 'image/') || in_array($mediaExt, ['jpg','jpeg','png','gif','webp','bmp','svg']);
@endphp
@if($isAudioMedia)
@elseif($isImageMedia)
@else
{{$media->file_name}}
{{number_format($media->size / 1024, 2)}} KB
تحميل
@endif
@endforeach
@endif
@endif
@endforeach
@endforeach
@endif