Show conversation status in search results

This commit is contained in:
Abhinav Raut
2026-03-22 15:17:07 +05:30
parent 34aecd268f
commit bcd0ed4fd1
3 changed files with 28 additions and 10 deletions
@@ -36,15 +36,24 @@
>
<div class="flex justify-between items-start">
<div class="flex-grow">
<!-- Reference number -->
<!-- Reference number and status -->
<div
class="text-sm font-semibold mb-2 text-muted-foreground group-hover:text-primary transition duration-200"
class="text-sm font-semibold mb-2 text-muted-foreground group-hover:text-primary transition duration-200 flex items-center gap-2"
>
#{{
type === 'conversations'
? item.reference_number
: item.conversation_reference_number
}}
<span>
#{{
type === 'conversations'
? item.reference_number
: item.conversation_reference_number
}}
</span>
<Badge variant="outline" class="text-xs font-medium">
{{
type === 'conversations'
? item.status
: item.conversation_status
}}
</Badge>
</div>
<!-- Content -->
@@ -93,6 +102,7 @@ import { computed, ref, watch } from 'vue'
import { ChevronRightIcon, ClockIcon } from 'lucide-vue-next'
import { format, parseISO } from 'date-fns'
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@shared-ui/components/ui/tabs'
import { Badge } from '@shared-ui/components/ui/badge'
const tabLabelKeys = {
conversations: 'globals.terms.conversation',
+2
View File
@@ -7,6 +7,7 @@ type ConversationResult struct {
UUID string `db:"uuid" json:"uuid"`
ReferenceNumber string `db:"reference_number" json:"reference_number"`
Subject string `db:"subject" json:"subject"`
Status string `db:"status" json:"status"`
}
type MessageResult struct {
@@ -15,6 +16,7 @@ type MessageResult struct {
ConversationCreatedAt time.Time `db:"conversation_created_at" json:"conversation_created_at"`
ConversationUUID string `db:"conversation_uuid" json:"conversation_uuid"`
ConversationReferenceNumber string `db:"conversation_reference_number" json:"conversation_reference_number"`
ConversationStatus string `db:"conversation_status" json:"conversation_status"`
}
type ContactResult struct {
+9 -3
View File
@@ -3,8 +3,10 @@ SELECT
conversations.created_at,
conversations.uuid,
conversations.reference_number,
conversations.subject
conversations.subject,
cs.name AS status
FROM conversations
LEFT JOIN conversation_statuses cs ON conversations.status_id = cs.id
WHERE reference_number::text = $1;
-- name: search-conversations-by-contact-email
@@ -12,9 +14,11 @@ SELECT
conversations.created_at,
conversations.uuid,
conversations.reference_number,
conversations.subject
conversations.subject,
cs.name AS status
FROM conversations
JOIN users ON conversations.contact_id = users.id
LEFT JOIN conversation_statuses cs ON conversations.status_id = cs.id
WHERE users.email = $1
ORDER BY conversations.created_at DESC
LIMIT 1000;
@@ -24,9 +28,11 @@ SELECT
c.created_at as "conversation_created_at",
c.reference_number as "conversation_reference_number",
c.uuid as "conversation_uuid",
m.text_content
m.text_content,
cs.name as "conversation_status"
FROM conversation_messages m
JOIN conversations c ON m.conversation_id = c.id
LEFT JOIN conversation_statuses cs ON c.status_id = cs.id
WHERE m.type != 'activity' and m.text_content ILIKE '%' || $1 || '%'
LIMIT 30;