feat(GRO-106): messaging schema + migrations #374

Merged
groombook-engineer[bot] merged 2 commits from feat/GRO-106-messaging-schema into dev 2026-05-04 02:24:40 +00:00
3 changed files with 21 additions and 4 deletions
Showing only changes of commit 2e24c371c3 - Show all commits
+2 -2
View File
@@ -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" (
+14
View File
@@ -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
+5 -2
View File
@@ -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),
]
);