-
+
- #{{
- type === 'conversations'
- ? item.reference_number
- : item.conversation_reference_number
- }}
+
+ #{{
+ type === 'conversations'
+ ? item.reference_number
+ : item.conversation_reference_number
+ }}
+
+
+ {{
+ type === 'conversations'
+ ? item.status
+ : item.conversation_status
+ }}
+
@@ -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',
diff --git a/internal/search/models/models.go b/internal/search/models/models.go
index 7fdcac2a..98310446 100644
--- a/internal/search/models/models.go
+++ b/internal/search/models/models.go
@@ -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 {
diff --git a/internal/search/queries.sql b/internal/search/queries.sql
index 672fd28c..3a132da2 100644
--- a/internal/search/queries.sql
+++ b/internal/search/queries.sql
@@ -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;