618 lines
21 KiB
SQL
618 lines
21 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "ProjectStatus" AS ENUM ('active', 'archived', 'paused');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "FeatureStatus" AS ENUM ('todo', 'in_progress', 'done');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "FeatureLifecycle" AS ENUM ('feature_candidate', 'planned', 'active', 'implemented', 'verified', 'production_proven', 'deprecated', 'archived');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "ApprovalState" AS ENUM ('pending', 'approved', 'rejected', 'blocked');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "EvidenceStrength" AS ENUM ('weak', 'medium', 'strong', 'verified');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "VerificationState" AS ENUM ('unverified', 'needs_evidence', 'verified', 'blocked');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "ReviewStatus" AS ENUM ('pending', 'accepted', 'rejected', 'merged', 'converted');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "EntityType" AS ENUM ('project', 'project_dna', 'workspace_state', 'feature_group', 'feature', 'evidence', 'context_pack', 'context_pack_section', 'memory_rule', 'knowledge_item', 'review_queue_item', 'idempotency_record', 'entity_relation', 'activity_event');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Project" (
|
|
"id" TEXT NOT NULL,
|
|
"slug" TEXT NOT NULL,
|
|
"readableId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"domain" TEXT NOT NULL,
|
|
"status" "ProjectStatus" NOT NULL DEFAULT 'active',
|
|
"health" INTEGER NOT NULL DEFAULT 0,
|
|
"healthStatus" TEXT NOT NULL,
|
|
"activeContextPackId" TEXT,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Project_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ProjectDNA" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"vision" TEXT NOT NULL,
|
|
"goalsJson" JSONB NOT NULL,
|
|
"nonGoalsJson" JSONB NOT NULL,
|
|
"targetAudience" TEXT NOT NULL,
|
|
"principlesJson" JSONB NOT NULL,
|
|
"metricsJson" JSONB NOT NULL,
|
|
"maturityStage" TEXT NOT NULL,
|
|
"revision" INTEGER NOT NULL DEFAULT 1,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "ProjectDNA_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "WorkspaceState" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"activeContextPackId" TEXT,
|
|
"primaryObjective" TEXT NOT NULL,
|
|
"activeSection" TEXT NOT NULL,
|
|
"notesJson" JSONB NOT NULL,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "WorkspaceState_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "FeatureGroup" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"slug" TEXT,
|
|
"readableId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"focusArea" TEXT,
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "FeatureGroup_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Feature" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"featureGroupId" TEXT NOT NULL,
|
|
"slug" TEXT,
|
|
"readableId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"status" "FeatureStatus" NOT NULL DEFAULT 'todo',
|
|
"lifecycle" "FeatureLifecycle" NOT NULL DEFAULT 'feature_candidate',
|
|
"intent" TEXT,
|
|
"confidence" INTEGER NOT NULL DEFAULT 0,
|
|
"health" INTEGER NOT NULL DEFAULT 0,
|
|
"approvalState" "ApprovalState" NOT NULL DEFAULT 'pending',
|
|
"evidenceStrength" "EvidenceStrength",
|
|
"verificationState" "VerificationState",
|
|
"verifiedAt" TIMESTAMP(3),
|
|
"verifiedBy" TEXT,
|
|
"trustJson" JSONB,
|
|
"provenanceJson" JSONB,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Feature_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Evidence" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"slug" TEXT,
|
|
"readableId" TEXT,
|
|
"type" TEXT NOT NULL,
|
|
"source" TEXT NOT NULL,
|
|
"confidence" INTEGER NOT NULL DEFAULT 0,
|
|
"approvalState" "ApprovalState" NOT NULL DEFAULT 'pending',
|
|
"evidenceStrength" "EvidenceStrength" NOT NULL DEFAULT 'weak',
|
|
"verificationState" "VerificationState",
|
|
"reason" TEXT NOT NULL,
|
|
"trustJson" JSONB,
|
|
"provenanceJson" JSONB,
|
|
"metadataJson" JSONB,
|
|
"lastSeen" TIMESTAMP(3) NOT NULL,
|
|
"verifiedAt" TIMESTAMP(3),
|
|
"verifiedBy" TEXT,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Evidence_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ContextPack" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"slug" TEXT,
|
|
"readableId" TEXT,
|
|
"title" TEXT NOT NULL,
|
|
"category" TEXT NOT NULL,
|
|
"summary" TEXT NOT NULL,
|
|
"generatedBy" TEXT NOT NULL,
|
|
"confidence" INTEGER NOT NULL DEFAULT 0,
|
|
"approvalState" "ApprovalState" NOT NULL DEFAULT 'pending',
|
|
"qualityJson" JSONB,
|
|
"trustJson" JSONB,
|
|
"provenanceJson" JSONB,
|
|
"metadataJson" JSONB,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "ContextPack_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ContextPackSection" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"contextPackId" TEXT NOT NULL,
|
|
"slug" TEXT,
|
|
"title" TEXT NOT NULL,
|
|
"sectionType" TEXT NOT NULL,
|
|
"orderIndex" INTEGER NOT NULL,
|
|
"contentJson" JSONB NOT NULL,
|
|
"metadataJson" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "ContextPackSection_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "MemoryRule" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"slug" TEXT,
|
|
"readableId" TEXT,
|
|
"title" TEXT NOT NULL,
|
|
"rule" TEXT NOT NULL,
|
|
"scope" TEXT NOT NULL,
|
|
"category" TEXT NOT NULL,
|
|
"severity" TEXT NOT NULL,
|
|
"includeInContextPacks" BOOLEAN NOT NULL DEFAULT false,
|
|
"confidence" INTEGER NOT NULL DEFAULT 0,
|
|
"approvalState" "ApprovalState" NOT NULL DEFAULT 'pending',
|
|
"evidenceStrength" "EvidenceStrength",
|
|
"verificationState" "VerificationState",
|
|
"verifiedAt" TIMESTAMP(3),
|
|
"verifiedBy" TEXT,
|
|
"trustJson" JSONB,
|
|
"provenanceJson" JSONB,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "MemoryRule_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "KnowledgeItem" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"slug" TEXT,
|
|
"readableId" TEXT,
|
|
"title" TEXT NOT NULL,
|
|
"category" TEXT NOT NULL,
|
|
"content" TEXT NOT NULL,
|
|
"source" TEXT NOT NULL,
|
|
"confidence" INTEGER NOT NULL DEFAULT 0,
|
|
"includeInContextPacks" BOOLEAN NOT NULL DEFAULT false,
|
|
"approvalState" "ApprovalState" NOT NULL DEFAULT 'pending',
|
|
"evidenceStrength" "EvidenceStrength",
|
|
"verificationState" "VerificationState",
|
|
"verifiedAt" TIMESTAMP(3),
|
|
"verifiedBy" TEXT,
|
|
"trustJson" JSONB,
|
|
"provenanceJson" JSONB,
|
|
"metadataJson" JSONB,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "KnowledgeItem_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ReviewQueueItem" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"slug" TEXT,
|
|
"readableId" TEXT,
|
|
"type" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"priority" TEXT NOT NULL,
|
|
"status" "ReviewStatus" NOT NULL DEFAULT 'pending',
|
|
"source" TEXT NOT NULL,
|
|
"confidence" INTEGER NOT NULL DEFAULT 0,
|
|
"approvalState" "ApprovalState" NOT NULL DEFAULT 'pending',
|
|
"evidenceStrength" "EvidenceStrength" NOT NULL DEFAULT 'weak',
|
|
"verificationState" "VerificationState" NOT NULL DEFAULT 'unverified',
|
|
"suggestedAction" TEXT NOT NULL,
|
|
"notes" TEXT,
|
|
"payloadJson" JSONB,
|
|
"provenanceJson" JSONB,
|
|
"createdEntityType" "EntityType",
|
|
"createdEntityId" TEXT,
|
|
"targetEntityType" "EntityType",
|
|
"targetEntityId" TEXT,
|
|
"verifiedAt" TIMESTAMP(3),
|
|
"verifiedBy" TEXT,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"updatedBy" TEXT,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "ReviewQueueItem_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "IdempotencyRecord" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT,
|
|
"method" TEXT NOT NULL,
|
|
"path" TEXT NOT NULL,
|
|
"key" TEXT NOT NULL,
|
|
"requestHash" TEXT NOT NULL,
|
|
"statusCode" INTEGER NOT NULL,
|
|
"responseJson" JSONB NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"expiresAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "IdempotencyRecord_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "EntityRelation" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"sourceEntityType" "EntityType" NOT NULL,
|
|
"sourceEntityId" TEXT NOT NULL,
|
|
"targetEntityType" "EntityType" NOT NULL,
|
|
"targetEntityId" TEXT NOT NULL,
|
|
"relationshipType" TEXT NOT NULL,
|
|
"metadataJson" JSONB,
|
|
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
|
"sourceType" TEXT NOT NULL DEFAULT 'fixture_seed',
|
|
"archivedAt" TIMESTAMP(3),
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "EntityRelation_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ActivityEvent" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"entityType" "EntityType" NOT NULL,
|
|
"entityId" TEXT NOT NULL,
|
|
"eventType" TEXT NOT NULL,
|
|
"actor" TEXT NOT NULL,
|
|
"payloadJson" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "ActivityEvent_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Project_slug_key" ON "Project"("slug");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Project_status_idx" ON "Project"("status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Project_activeContextPackId_idx" ON "Project"("activeContextPackId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Project_deletedAt_idx" ON "Project"("deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Project_updatedAt_idx" ON "Project"("updatedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ProjectDNA_projectId_key" ON "ProjectDNA"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "WorkspaceState_projectId_key" ON "WorkspaceState"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "WorkspaceState_projectId_activeContextPackId_idx" ON "WorkspaceState"("projectId", "activeContextPackId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FeatureGroup_projectId_idx" ON "FeatureGroup"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FeatureGroup_projectId_deletedAt_idx" ON "FeatureGroup"("projectId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "FeatureGroup_projectId_slug_key" ON "FeatureGroup"("projectId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "FeatureGroup_projectId_readableId_key" ON "FeatureGroup"("projectId", "readableId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Feature_projectId_idx" ON "Feature"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Feature_projectId_status_idx" ON "Feature"("projectId", "status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Feature_projectId_lifecycle_idx" ON "Feature"("projectId", "lifecycle");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Feature_projectId_featureGroupId_idx" ON "Feature"("projectId", "featureGroupId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Feature_projectId_name_idx" ON "Feature"("projectId", "name");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Feature_projectId_deletedAt_idx" ON "Feature"("projectId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Feature_projectId_slug_key" ON "Feature"("projectId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Feature_projectId_readableId_key" ON "Feature"("projectId", "readableId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Evidence_projectId_idx" ON "Evidence"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Evidence_projectId_type_idx" ON "Evidence"("projectId", "type");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Evidence_projectId_approvalState_idx" ON "Evidence"("projectId", "approvalState");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Evidence_projectId_evidenceStrength_idx" ON "Evidence"("projectId", "evidenceStrength");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Evidence_projectId_lastSeen_idx" ON "Evidence"("projectId", "lastSeen");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Evidence_projectId_deletedAt_idx" ON "Evidence"("projectId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Evidence_projectId_slug_key" ON "Evidence"("projectId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Evidence_projectId_readableId_key" ON "Evidence"("projectId", "readableId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ContextPack_projectId_idx" ON "ContextPack"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ContextPack_projectId_category_idx" ON "ContextPack"("projectId", "category");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ContextPack_projectId_generatedBy_idx" ON "ContextPack"("projectId", "generatedBy");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ContextPack_projectId_createdAt_idx" ON "ContextPack"("projectId", "createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ContextPack_projectId_deletedAt_idx" ON "ContextPack"("projectId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ContextPack_projectId_slug_key" ON "ContextPack"("projectId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ContextPack_projectId_readableId_key" ON "ContextPack"("projectId", "readableId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ContextPackSection_projectId_idx" ON "ContextPackSection"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ContextPackSection_contextPackId_orderIndex_idx" ON "ContextPackSection"("contextPackId", "orderIndex");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ContextPackSection_projectId_sectionType_idx" ON "ContextPackSection"("projectId", "sectionType");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ContextPackSection_contextPackId_slug_key" ON "ContextPackSection"("contextPackId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "MemoryRule_projectId_idx" ON "MemoryRule"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "MemoryRule_projectId_scope_idx" ON "MemoryRule"("projectId", "scope");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "MemoryRule_projectId_category_idx" ON "MemoryRule"("projectId", "category");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "MemoryRule_projectId_severity_idx" ON "MemoryRule"("projectId", "severity");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "MemoryRule_projectId_includeInContextPacks_idx" ON "MemoryRule"("projectId", "includeInContextPacks");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "MemoryRule_projectId_deletedAt_idx" ON "MemoryRule"("projectId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "MemoryRule_projectId_slug_key" ON "MemoryRule"("projectId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "MemoryRule_projectId_readableId_key" ON "MemoryRule"("projectId", "readableId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "KnowledgeItem_projectId_idx" ON "KnowledgeItem"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "KnowledgeItem_projectId_category_idx" ON "KnowledgeItem"("projectId", "category");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "KnowledgeItem_projectId_source_idx" ON "KnowledgeItem"("projectId", "source");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "KnowledgeItem_projectId_createdAt_idx" ON "KnowledgeItem"("projectId", "createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "KnowledgeItem_projectId_deletedAt_idx" ON "KnowledgeItem"("projectId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "KnowledgeItem_projectId_slug_key" ON "KnowledgeItem"("projectId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "KnowledgeItem_projectId_readableId_key" ON "KnowledgeItem"("projectId", "readableId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ReviewQueueItem_projectId_idx" ON "ReviewQueueItem"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ReviewQueueItem_projectId_status_idx" ON "ReviewQueueItem"("projectId", "status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ReviewQueueItem_projectId_type_idx" ON "ReviewQueueItem"("projectId", "type");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ReviewQueueItem_projectId_priority_idx" ON "ReviewQueueItem"("projectId", "priority");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ReviewQueueItem_projectId_createdAt_idx" ON "ReviewQueueItem"("projectId", "createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ReviewQueueItem_projectId_deletedAt_idx" ON "ReviewQueueItem"("projectId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ReviewQueueItem_projectId_slug_key" ON "ReviewQueueItem"("projectId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ReviewQueueItem_projectId_readableId_key" ON "ReviewQueueItem"("projectId", "readableId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "IdempotencyRecord_projectId_idx" ON "IdempotencyRecord"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "IdempotencyRecord_expiresAt_idx" ON "IdempotencyRecord"("expiresAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "IdempotencyRecord_method_path_key_key" ON "IdempotencyRecord"("method", "path", "key");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "EntityRelation_projectId_idx" ON "EntityRelation"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "EntityRelation_projectId_sourceEntityType_sourceEntityId_idx" ON "EntityRelation"("projectId", "sourceEntityType", "sourceEntityId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "EntityRelation_projectId_targetEntityType_targetEntityId_idx" ON "EntityRelation"("projectId", "targetEntityType", "targetEntityId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "EntityRelation_projectId_relationshipType_idx" ON "EntityRelation"("projectId", "relationshipType");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "EntityRelation_projectId_deletedAt_idx" ON "EntityRelation"("projectId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ActivityEvent_projectId_idx" ON "ActivityEvent"("projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ActivityEvent_projectId_entityType_entityId_idx" ON "ActivityEvent"("projectId", "entityType", "entityId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ActivityEvent_projectId_eventType_idx" ON "ActivityEvent"("projectId", "eventType");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ActivityEvent_projectId_createdAt_idx" ON "ActivityEvent"("projectId", "createdAt");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ProjectDNA" ADD CONSTRAINT "ProjectDNA_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "WorkspaceState" ADD CONSTRAINT "WorkspaceState_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FeatureGroup" ADD CONSTRAINT "FeatureGroup_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Feature" ADD CONSTRAINT "Feature_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Feature" ADD CONSTRAINT "Feature_featureGroupId_fkey" FOREIGN KEY ("featureGroupId") REFERENCES "FeatureGroup"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Evidence" ADD CONSTRAINT "Evidence_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ContextPack" ADD CONSTRAINT "ContextPack_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ContextPackSection" ADD CONSTRAINT "ContextPackSection_contextPackId_fkey" FOREIGN KEY ("contextPackId") REFERENCES "ContextPack"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "MemoryRule" ADD CONSTRAINT "MemoryRule_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "KnowledgeItem" ADD CONSTRAINT "KnowledgeItem_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ReviewQueueItem" ADD CONSTRAINT "ReviewQueueItem_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EntityRelation" ADD CONSTRAINT "EntityRelation_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ActivityEvent" ADD CONSTRAINT "ActivityEvent_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|