From 2e24c371c31c152e5654c67931b17a6ce104fa00 Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Mon, 4 May 2026 02:16:25 +0000 Subject: [PATCH] fix(GRO-981): restore journal entries and add DESC to indexes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _journal.json: restore idx 28 (0028_sms_reminders), add idx 29 (0029_db_indexes_constraints), renumber 0030_messaging to idx 30 (was missing 0028 and 0029 entries — they were silently skipped) - schema.ts: add .desc() to conversations.lastMessageAt and messages.createdAt indexes per spec - 0030_messaging.sql: add DESC to both generated index statements Co-Authored-By: Paperclip --- packages/db/migrations/0030_messaging.sql | 4 ++-- packages/db/migrations/meta/_journal.json | 14 ++++++++++++++ packages/db/src/schema.ts | 7 +++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/db/migrations/0030_messaging.sql b/packages/db/migrations/0030_messaging.sql index dbf1b61..c404505 100644 --- a/packages/db/migrations/0030_messaging.sql +++ b/packages/db/migrations/0030_messaging.sql @@ -23,7 +23,7 @@ CREATE TABLE "conversations" ( "updated_at" timestamp NOT NULL DEFAULT now() ); -CREATE INDEX "idx_conversations_business_id_last_message_at" ON "conversations"("business_id", "last_message_at"); +CREATE INDEX "idx_conversations_business_id_last_message_at" ON "conversations"("business_id", "last_message_at" DESC); CREATE UNIQUE INDEX "uq_conversations_business_client_number" ON "conversations"("business_id", "client_id", "business_number"); CREATE TABLE "messages" ( @@ -41,7 +41,7 @@ CREATE TABLE "messages" ( "read_by_client_at" timestamp ); -CREATE INDEX "idx_messages_conversation_id_created_at" ON "messages"("conversation_id", "created_at"); +CREATE INDEX "idx_messages_conversation_id_created_at" ON "messages"("conversation_id", "created_at" DESC); CREATE UNIQUE INDEX "uq_messages_provider_message_id" ON "messages"("provider_message_id"); CREATE TABLE "message_attachments" ( diff --git a/packages/db/migrations/meta/_journal.json b/packages/db/migrations/meta/_journal.json index 43f81e7..eef2244 100644 --- a/packages/db/migrations/meta/_journal.json +++ b/packages/db/migrations/meta/_journal.json @@ -198,9 +198,23 @@ "tag": "0027_refunds", "breakpoints": true }, + { + "idx": 28, + "version": "7", + "when": 1775741667192, + "tag": "0028_sms_reminders", + "breakpoints": true + }, { "idx": 29, "version": "7", + "when": 1775784467192, + "tag": "0029_db_indexes_constraints", + "breakpoints": true + }, + { + "idx": 30, + "version": "7", "when": 1775828067192, "tag": "0030_messaging", "breakpoints": true diff --git a/packages/db/src/schema.ts b/packages/db/src/schema.ts index 165eac8..f1d74b3 100644 --- a/packages/db/src/schema.ts +++ b/packages/db/src/schema.ts @@ -448,7 +448,7 @@ export const conversations = pgTable( (t) => [ index("idx_conversations_business_id_last_message_at").on( t.businessId, - t.lastMessageAt + t.lastMessageAt.desc() ), unique("uq_conversations_business_client_number").on( t.businessId, @@ -479,7 +479,10 @@ export const messages = pgTable( readByClientAt: timestamp("read_by_client_at"), }, (t) => [ - index("idx_messages_conversation_id_created_at").on(t.conversationId, t.createdAt), + index("idx_messages_conversation_id_created_at").on( + t.conversationId, + t.createdAt.desc() + ), unique("uq_messages_provider_message_id").on(t.providerMessageId), ] );