Files
lislgosms/api/prisma/migrations/20260726143000_application_risk_rules/migration.sql
T

40 lines
1.4 KiB
SQL

-- Risk thresholds now inherit from global rules and may be overridden per application.
-- Existing maxPhonesPerTask values are intentionally discarded because this environment
-- contains test-only application data and the product owner explicitly declined migration.
ALTER TABLE "RiskRule" ADD COLUMN "applicationId" TEXT;
-- Retain historical rules and hit records for audit, but remove them from the
-- effective rule set and configuration page.
UPDATE "RiskRule"
SET "status" = 'deleted'
WHERE "code" IN (
'DUPLICATE_PHONE_RATIO',
'ILLEGAL_PHONE_RATIO',
'BLACKLIST_HIT_RATIO',
'TEMPLATE_VARIABLE_ANOMALY'
);
UPDATE "RiskRule"
SET "status" = 'deleted'
WHERE "tenantId" IS NOT NULL AND "applicationId" IS NULL;
DROP INDEX IF EXISTS "RiskRule_tenantId_code_key";
DROP INDEX IF EXISTS "RiskRule_tenantId_status_priority_idx";
CREATE UNIQUE INDEX "RiskRule_applicationId_code_key"
ON "RiskRule"("applicationId", "code");
CREATE UNIQUE INDEX "RiskRule_global_code_key"
ON "RiskRule"("code")
WHERE "applicationId" IS NULL AND "status" <> 'deleted';
CREATE INDEX "RiskRule_tenantId_applicationId_status_priority_idx"
ON "RiskRule"("tenantId", "applicationId", "status", "priority");
ALTER TABLE "RiskRule"
ADD CONSTRAINT "RiskRule_applicationId_fkey"
FOREIGN KEY ("applicationId") REFERENCES "SmsApplication"("id")
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "SmsApplication" DROP COLUMN "maxPhonesPerTask";