11CREATE TABLE "Conversation " (
2- " id" UUID NOT NULL DEFAULT gen_random_uuid() ,
2+ " id" UUID NOT NULL ,
33 " tenancyId" UUID NOT NULL ,
44 " projectUserId" UUID,
55 " teamId" UUID,
@@ -17,7 +17,7 @@ CREATE TABLE "Conversation" (
1717 " lastAgentReplyAt" TIMESTAMP (3 ),
1818 " metadata" JSONB,
1919 " createdAt" TIMESTAMP (3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ,
20- " updatedAt" TIMESTAMP (3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ,
20+ " updatedAt" TIMESTAMP (3 ) NOT NULL ,
2121 " lastMessageAt" TIMESTAMP (3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ,
2222 " lastInboundAt" TIMESTAMP (3 ),
2323 " lastOutboundAt" TIMESTAMP (3 ),
@@ -31,7 +31,7 @@ CREATE TABLE "Conversation" (
3131);
3232
3333CREATE TABLE "ConversationEntryPoint " (
34- " id" UUID NOT NULL DEFAULT gen_random_uuid() ,
34+ " id" UUID NOT NULL ,
3535 " tenancyId" UUID NOT NULL ,
3636 " conversationId" UUID NOT NULL ,
3737 " channelType" TEXT NOT NULL ,
@@ -40,16 +40,16 @@ CREATE TABLE "ConversationEntryPoint" (
4040 " isEntryPoint" BOOLEAN NOT NULL DEFAULT FALSE,
4141 " metadata" JSONB,
4242 " createdAt" TIMESTAMP (3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ,
43- " updatedAt" TIMESTAMP (3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ,
43+ " updatedAt" TIMESTAMP (3 ) NOT NULL ,
4444
4545 CONSTRAINT " ConversationEntryPoint_pkey" PRIMARY KEY (" tenancyId" ," id" ),
4646 CONSTRAINT " ConversationEntryPoint_type_check" CHECK (" channelType" IN (' manual' , ' chat' , ' email' , ' api' )),
4747 CONSTRAINT " ConversationEntryPoint_tenancyId_fkey" FOREIGN KEY (" tenancyId" ) REFERENCES " Tenancy" (" id" ) ON DELETE CASCADE ON UPDATE CASCADE,
48- CONSTRAINT " ConversationEntryPoint_conversation_fkey " FOREIGN KEY (" tenancyId" , " conversationId" ) REFERENCES " Conversation" (" tenancyId" , " id" ) ON DELETE CASCADE ON UPDATE CASCADE
48+ CONSTRAINT " ConversationEntryPoint_tenancyId_conversationId_fkey " FOREIGN KEY (" tenancyId" , " conversationId" ) REFERENCES " Conversation" (" tenancyId" , " id" ) ON DELETE CASCADE ON UPDATE CASCADE
4949);
5050
5151CREATE TABLE "ConversationMessage " (
52- " id" UUID NOT NULL DEFAULT gen_random_uuid() ,
52+ " id" UUID NOT NULL ,
5353 " tenancyId" UUID NOT NULL ,
5454 " conversationId" UUID NOT NULL ,
5555 " channelId" UUID,
@@ -67,8 +67,8 @@ CREATE TABLE "ConversationMessage" (
6767 CONSTRAINT " ConversationMessage_messageType_check" CHECK (" messageType" IN (' message' , ' internal-note' , ' status-change' )),
6868 CONSTRAINT " ConversationMessage_senderType_check" CHECK (" senderType" IN (' user' , ' agent' , ' system' )),
6969 CONSTRAINT " ConversationMessage_tenancyId_fkey" FOREIGN KEY (" tenancyId" ) REFERENCES " Tenancy" (" id" ) ON DELETE CASCADE ON UPDATE CASCADE,
70- CONSTRAINT " ConversationMessage_conversation_fkey " FOREIGN KEY (" tenancyId" , " conversationId" ) REFERENCES " Conversation" (" tenancyId" , " id" ) ON DELETE CASCADE ON UPDATE CASCADE,
71- CONSTRAINT " ConversationMessage_channel_fkey " FOREIGN KEY (" tenancyId" , " channelId" ) REFERENCES " ConversationEntryPoint" (" tenancyId" , " id" ) ON DELETE NO ACTION ON UPDATE CASCADE
70+ CONSTRAINT " ConversationMessage_tenancyId_conversationId_fkey " FOREIGN KEY (" tenancyId" , " conversationId" ) REFERENCES " Conversation" (" tenancyId" , " id" ) ON DELETE CASCADE ON UPDATE CASCADE,
71+ CONSTRAINT " ConversationMessage_tenancyId_channelId_fkey " FOREIGN KEY (" tenancyId" , " channelId" ) REFERENCES " ConversationEntryPoint" (" tenancyId" , " id" ) ON DELETE NO ACTION ON UPDATE CASCADE
7272);
7373
7474CREATE INDEX "Conversation_user_lastMessageAt_idx " ON " Conversation" (" tenancyId" , " projectUserId" , " lastMessageAt" DESC );
0 commit comments