Bill all platform SMS (including OTP), allow negative balance with manual/auto cutoffs, and support own-panel bypass without wallet debit.
91 lines
3.1 KiB
SQL
91 lines
3.1 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "SmsAccount" (
|
|
"id" TEXT NOT NULL,
|
|
"organizationId" TEXT NOT NULL,
|
|
"balanceRials" INTEGER NOT NULL DEFAULT 0,
|
|
"pricePerPartRials" INTEGER NOT NULL DEFAULT 2500,
|
|
"isBlocked" BOOLEAN NOT NULL DEFAULT false,
|
|
"autoBlockBelowRials" INTEGER,
|
|
"alertCriticalRials" INTEGER NOT NULL DEFAULT 10000,
|
|
"alertWarningRials" INTEGER NOT NULL DEFAULT 100000,
|
|
"panelMode" TEXT NOT NULL DEFAULT 'platform',
|
|
"ownPanelType" TEXT NOT NULL DEFAULT '0098',
|
|
"ownPanelUsername" TEXT,
|
|
"ownPanelPassword" TEXT,
|
|
"ownPanelFrom" TEXT,
|
|
"chargeCard" TEXT,
|
|
"chargeIban" TEXT,
|
|
"chargeHolder" TEXT,
|
|
"chargeInstruction" TEXT,
|
|
"alertDaysSent" INTEGER NOT NULL DEFAULT 0,
|
|
"lastAlertDate" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "SmsAccount_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SmsLedger" (
|
|
"id" TEXT NOT NULL,
|
|
"smsAccountId" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"amountRials" INTEGER NOT NULL,
|
|
"balanceAfterRials" INTEGER NOT NULL,
|
|
"parts" INTEGER,
|
|
"pricePerPartRials" INTEGER,
|
|
"note" TEXT,
|
|
"smsSendLogId" TEXT,
|
|
"createdById" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "SmsLedger_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SmsBillingSendLog" (
|
|
"id" TEXT NOT NULL,
|
|
"smsAccountId" TEXT NOT NULL,
|
|
"receiver" TEXT NOT NULL,
|
|
"body" TEXT NOT NULL,
|
|
"parts" INTEGER NOT NULL,
|
|
"pricePerPartRials" INTEGER NOT NULL,
|
|
"totalAmountRials" INTEGER NOT NULL,
|
|
"provider" TEXT,
|
|
"source" TEXT,
|
|
"isAlert" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "SmsBillingSendLog_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "SmsAccount_organizationId_key" ON "SmsAccount"("organizationId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SmsAccount_isBlocked_idx" ON "SmsAccount"("isBlocked");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SmsAccount_balanceRials_idx" ON "SmsAccount"("balanceRials");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SmsLedger_smsAccountId_createdAt_idx" ON "SmsLedger"("smsAccountId", "createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SmsLedger_type_idx" ON "SmsLedger"("type");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SmsBillingSendLog_smsAccountId_createdAt_idx" ON "SmsBillingSendLog"("smsAccountId", "createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SmsBillingSendLog_source_idx" ON "SmsBillingSendLog"("source");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "SmsAccount" ADD CONSTRAINT "SmsAccount_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "SmsLedger" ADD CONSTRAINT "SmsLedger_smsAccountId_fkey" FOREIGN KEY ("smsAccountId") REFERENCES "SmsAccount"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "SmsBillingSendLog" ADD CONSTRAINT "SmsBillingSendLog_smsAccountId_fkey" FOREIGN KEY ("smsAccountId") REFERENCES "SmsAccount"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|