feat(service): P2.1 messaging tables — IiosMessageReceipt + IiosUnreadCounter
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "IiosReceiptKind" AS ENUM ('DELIVERED', 'READ', 'ACKED', 'FAILED', 'SUPPRESSED', 'RATE_LIMITED');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "IiosMessageReceipt" (
|
||||
"id" TEXT NOT NULL,
|
||||
"interactionId" TEXT NOT NULL,
|
||||
"actorId" TEXT,
|
||||
"receiptKind" "IiosReceiptKind" NOT NULL,
|
||||
"occurredAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"providerReceiptRef" TEXT,
|
||||
"metadata" JSONB,
|
||||
|
||||
CONSTRAINT "IiosMessageReceipt_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "IiosUnreadCounter" (
|
||||
"threadId" TEXT NOT NULL,
|
||||
"actorId" TEXT NOT NULL,
|
||||
"unreadCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"lastReadInteractionId" TEXT,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "IiosUnreadCounter_pkey" PRIMARY KEY ("threadId","actorId")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "IiosMessageReceipt_interactionId_idx" ON "IiosMessageReceipt"("interactionId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "IiosMessageReceipt_interactionId_actorId_receiptKind_key" ON "IiosMessageReceipt"("interactionId", "actorId", "receiptKind");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "IiosMessageReceipt" ADD CONSTRAINT "IiosMessageReceipt_interactionId_fkey" FOREIGN KEY ("interactionId") REFERENCES "IiosInteraction"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "IiosMessageReceipt" ADD CONSTRAINT "IiosMessageReceipt_actorId_fkey" FOREIGN KEY ("actorId") REFERENCES "IiosActorRef"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "IiosUnreadCounter" ADD CONSTRAINT "IiosUnreadCounter_threadId_fkey" FOREIGN KEY ("threadId") REFERENCES "IiosThread"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "IiosUnreadCounter" ADD CONSTRAINT "IiosUnreadCounter_actorId_fkey" FOREIGN KEY ("actorId") REFERENCES "IiosActorRef"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user