-- AlterTable ALTER TABLE "Subscriber" DROP COLUMN "zone", ADD COLUMN "zoneId" TEXT; -- CreateTable CREATE TABLE "Zone" ( "id" TEXT NOT NULL, "tenantId" TEXT NOT NULL, "name" TEXT NOT NULL, "description" TEXT, "isActive" BOOLEAN NOT NULL DEFAULT true, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "Zone_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "ZoneAssignment" ( "id" TEXT NOT NULL, "tenantId" TEXT NOT NULL, "userId" TEXT NOT NULL, "zoneId" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "ZoneAssignment_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE INDEX "Zone_tenantId_idx" ON "Zone"("tenantId"); -- CreateIndex CREATE UNIQUE INDEX "Zone_tenantId_name_key" ON "Zone"("tenantId", "name"); -- CreateIndex CREATE INDEX "ZoneAssignment_tenantId_idx" ON "ZoneAssignment"("tenantId"); -- CreateIndex CREATE INDEX "ZoneAssignment_userId_idx" ON "ZoneAssignment"("userId"); -- CreateIndex CREATE INDEX "ZoneAssignment_zoneId_idx" ON "ZoneAssignment"("zoneId"); -- CreateIndex CREATE UNIQUE INDEX "ZoneAssignment_tenantId_userId_zoneId_key" ON "ZoneAssignment"("tenantId", "userId", "zoneId"); -- CreateIndex CREATE INDEX "Subscriber_tenantId_zoneId_idx" ON "Subscriber"("tenantId", "zoneId"); -- AddForeignKey ALTER TABLE "Subscriber" ADD CONSTRAINT "Subscriber_zoneId_fkey" FOREIGN KEY ("zoneId") REFERENCES "Zone"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "ZoneAssignment" ADD CONSTRAINT "ZoneAssignment_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "ZoneAssignment" ADD CONSTRAINT "ZoneAssignment_zoneId_fkey" FOREIGN KEY ("zoneId") REFERENCES "Zone"("id") ON DELETE RESTRICT ON UPDATE CASCADE;