7b174e24fa
IiosInboxItem + IiosInboxItemStateHistory (migration inbox-init). Extracted resolveScope/resolveActor/ensureParticipant into a shared ActorResolver (IdentityModule) so message + inbox layers share identity resolution; MessageService delegates (P2 tests unchanged). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
63 lines
2.5 KiB
SQL
63 lines
2.5 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "IiosInboxItemKind" AS ENUM ('NEEDS_REPLY', 'NEEDS_REVIEW', 'NEEDS_APPROVAL', 'SUPPORT_UPDATE', 'MEETING_FOLLOWUP', 'DIGEST', 'SYSTEM_ALERT', 'CRM_OWNER_INTEREST');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "IiosInboxState" AS ENUM ('OPEN', 'SNOOZED', 'DONE', 'ARCHIVED', 'CANCELLED', 'STALE');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "IiosInboxItem" (
|
|
"id" TEXT NOT NULL,
|
|
"scopeId" TEXT NOT NULL,
|
|
"ownerActorId" TEXT NOT NULL,
|
|
"kind" "IiosInboxItemKind" NOT NULL,
|
|
"state" "IiosInboxState" NOT NULL DEFAULT 'OPEN',
|
|
"title" TEXT NOT NULL,
|
|
"summary" TEXT,
|
|
"priority" TEXT NOT NULL DEFAULT 'NORMAL',
|
|
"dueAt" TIMESTAMP(3),
|
|
"sourceInteractionId" TEXT,
|
|
"threadId" TEXT,
|
|
"traceId" TEXT,
|
|
"actionRef" JSONB,
|
|
"policyDecisionRef" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
"metadata" JSONB,
|
|
|
|
CONSTRAINT "IiosInboxItem_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "IiosInboxItemStateHistory" (
|
|
"id" TEXT NOT NULL,
|
|
"inboxItemId" TEXT NOT NULL,
|
|
"fromState" "IiosInboxState",
|
|
"toState" "IiosInboxState" NOT NULL,
|
|
"actorId" TEXT,
|
|
"reasonCode" TEXT,
|
|
"at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "IiosInboxItemStateHistory_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "IiosInboxItem_ownerActorId_state_priority_idx" ON "IiosInboxItem"("ownerActorId", "state", "priority");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "IiosInboxItemStateHistory_inboxItemId_idx" ON "IiosInboxItemStateHistory"("inboxItemId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "IiosInboxItem" ADD CONSTRAINT "IiosInboxItem_scopeId_fkey" FOREIGN KEY ("scopeId") REFERENCES "IiosScope"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "IiosInboxItem" ADD CONSTRAINT "IiosInboxItem_ownerActorId_fkey" FOREIGN KEY ("ownerActorId") REFERENCES "IiosActorRef"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "IiosInboxItem" ADD CONSTRAINT "IiosInboxItem_sourceInteractionId_fkey" FOREIGN KEY ("sourceInteractionId") REFERENCES "IiosInteraction"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "IiosInboxItem" ADD CONSTRAINT "IiosInboxItem_threadId_fkey" FOREIGN KEY ("threadId") REFERENCES "IiosThread"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "IiosInboxItemStateHistory" ADD CONSTRAINT "IiosInboxItemStateHistory_inboxItemId_fkey" FOREIGN KEY ("inboxItemId") REFERENCES "IiosInboxItem"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|