all the haul

This commit is contained in:
2026-04-07 23:56:31 +00:00
parent 87cce83030
commit 24f303355b
244 changed files with 33743 additions and 11249 deletions
@@ -0,0 +1,2 @@
-- Rename the misspelled column serverityId -> severityId on ServiceTicket
ALTER TABLE "ServiceTicket" RENAME COLUMN "serverityId" TO "severityId";
@@ -0,0 +1,41 @@
-- CreateEnum
CREATE TYPE "SyncJobType" AS ENUM ('FULL_SYNC', 'INCREMENTAL_SYNC');
-- CreateEnum
CREATE TYPE "SyncJobStatus" AS ENUM ('QUEUED', 'RUNNING', 'COMPLETED', 'FAILED', 'TIMED_OUT');
-- CreateTable
CREATE TABLE "SyncJobRun" (
"id" TEXT NOT NULL,
"jobType" "SyncJobType" NOT NULL,
"status" "SyncJobStatus" NOT NULL DEFAULT 'QUEUED',
"triggeredBy" TEXT NOT NULL DEFAULT 'system',
"startedAt" TIMESTAMP(3),
"completedAt" TIMESTAMP(3),
"errorSummary" TEXT,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "SyncJobRun_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "SyncStepLog" (
"id" TEXT NOT NULL,
"syncJobRunId" TEXT NOT NULL,
"tableName" TEXT NOT NULL,
"syncMode" TEXT NOT NULL,
"recordsProcessed" INTEGER NOT NULL DEFAULT 0,
"recordsInserted" INTEGER NOT NULL DEFAULT 0,
"recordsSkipped" INTEGER NOT NULL DEFAULT 0,
"recordsFailed" INTEGER NOT NULL DEFAULT 0,
"recordsDeleted" INTEGER NOT NULL DEFAULT 0,
"sampleErrors" JSONB NOT NULL DEFAULT '[]',
"durationMs" INTEGER NOT NULL DEFAULT 0,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "SyncStepLog_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "SyncStepLog" ADD CONSTRAINT "SyncStepLog_syncJobRunId_fkey" FOREIGN KEY ("syncJobRunId") REFERENCES "SyncJobRun"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,47 @@
-- CreateTable (idempotent)
CREATE TABLE IF NOT EXISTS "OpportunityStage" (
"uid" TEXT NOT NULL,
"id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
"seqNbr" INTEGER,
"funnelColor" TEXT,
"updatedById" TEXT,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "OpportunityStage_pkey" PRIMARY KEY ("uid")
);
-- CreateIndex (idempotent)
CREATE UNIQUE INDEX IF NOT EXISTS "OpportunityStage_id_key" ON "OpportunityStage"("id");
-- AlterTable: drop old columns if they exist, add stageId if it doesn't
DO $$
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'Opportunity' AND column_name = 'stageName') THEN
ALTER TABLE "Opportunity" DROP COLUMN "stageName";
END IF;
IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'Opportunity' AND column_name = 'stageCwId') THEN
ALTER TABLE "Opportunity" DROP COLUMN "stageCwId";
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'Opportunity' AND column_name = 'stageId') THEN
ALTER TABLE "Opportunity" ADD COLUMN "stageId" INTEGER;
END IF;
END $$;
-- Nullify any stageId values that reference non-existent OpportunityStage rows
UPDATE "Opportunity" SET "stageId" = NULL
WHERE "stageId" IS NOT NULL
AND "stageId" NOT IN (SELECT "id" FROM "OpportunityStage");
-- AddForeignKey (skip if already exists)
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.table_constraints
WHERE constraint_name = 'Opportunity_stageId_fkey'
) THEN
ALTER TABLE "Opportunity" ADD CONSTRAINT "Opportunity_stageId_fkey"
FOREIGN KEY ("stageId") REFERENCES "OpportunityStage"("id") ON DELETE SET NULL ON UPDATE CASCADE;
END IF;
END $$;