diff --git a/frontend/apps/main/src/features/search/SearchResults.vue b/frontend/apps/main/src/features/search/SearchResults.vue index ec97e47b..9745b506 100644 --- a/frontend/apps/main/src/features/search/SearchResults.vue +++ b/frontend/apps/main/src/features/search/SearchResults.vue @@ -36,15 +36,24 @@ >
- +
- #{{ - 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;