update payment method, remove stripe, paypal, amanapay
Build & Push / Pipeline Tests (push) Failing after 59s
Build & Push / Build & Push Docker Image (push) Has been skipped
Test / Type Check (all packages) (push) Failing after 48s
Test / API Unit Tests (push) Has been skipped
Test / Homepage Unit Tests (push) Has been skipped
Test / Carplace Unit Tests (push) Has been skipped
Test / Admin Unit Tests (push) Has been skipped
Test / Dashboard Unit Tests (push) Has been skipped
Test / API Integration Tests (push) Has been skipped

This commit is contained in:
root
2026-08-17 21:05:29 -04:00
parent c9915a8315
commit fe8ffbeb9f
109 changed files with 568 additions and 2662 deletions
@@ -0,0 +1,129 @@
-- Remap leftover Stripe rows before the enum values are dropped.
-- Compare as text so this stays valid if STRIPE is already absent from the enum.
UPDATE "billing_invoices"
SET "collectionMethod" = 'BANK_TRANSFER'
WHERE "collectionMethod"::text = 'STRIPE';
UPDATE "billing_invoices"
SET "paymentProvider" = 'MANUAL'
WHERE "paymentProvider"::text = 'STRIPE';
UPDATE "subscription_invoices"
SET "paymentProvider" = 'MANUAL'
WHERE "paymentProvider"::text = 'STRIPE';
UPDATE "rental_payments"
SET "paymentProvider" = 'MANUAL'
WHERE "paymentProvider"::text = 'STRIPE';
DO $$
BEGIN
IF EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = 'brand_settings'
AND column_name = 'paymentMethodsEnabled'
) THEN
UPDATE "brand_settings"
SET "paymentMethodsEnabled" = ARRAY(
SELECT x
FROM unnest("paymentMethodsEnabled") AS x
WHERE x::text <> 'STRIPE'
)
WHERE EXISTS (
SELECT 1
FROM unnest("paymentMethodsEnabled") AS x
WHERE x::text = 'STRIPE'
);
END IF;
END $$;
DROP INDEX IF EXISTS "subscription_invoices_stripeCheckoutSessionId_key";
ALTER TABLE "subscription_invoices" DROP COLUMN IF EXISTS "stripeCheckoutSessionId";
DROP INDEX IF EXISTS "rental_payments_stripeCheckoutSessionId_key";
DROP INDEX IF EXISTS "rental_payments_stripePaymentIntentId_key";
ALTER TABLE "rental_payments" DROP COLUMN IF EXISTS "stripeCheckoutSessionId";
ALTER TABLE "rental_payments" DROP COLUMN IF EXISTS "stripePaymentIntentId";
-- Recreate SubscriptionCollectionMethod without STRIPE (DROP VALUE is not allowed in a Prisma transaction).
DO $$
BEGIN
IF EXISTS (
SELECT 1
FROM pg_type t
JOIN pg_enum e ON e.enumtypid = t.oid
WHERE t.typname = 'SubscriptionCollectionMethod'
AND e.enumlabel = 'STRIPE'
) THEN
DROP TYPE IF EXISTS "SubscriptionCollectionMethod_new";
CREATE TYPE "SubscriptionCollectionMethod_new" AS ENUM ('BANK_TRANSFER', 'CHECK');
ALTER TABLE "billing_invoices" ALTER COLUMN "collectionMethod" DROP DEFAULT;
ALTER TABLE "billing_invoices"
ALTER COLUMN "collectionMethod" TYPE "SubscriptionCollectionMethod_new"
USING ("collectionMethod"::text::"SubscriptionCollectionMethod_new");
DROP TYPE "SubscriptionCollectionMethod";
ALTER TYPE "SubscriptionCollectionMethod_new" RENAME TO "SubscriptionCollectionMethod";
ALTER TABLE "billing_invoices" ALTER COLUMN "collectionMethod" SET DEFAULT 'BANK_TRANSFER';
END IF;
END $$;
-- Recreate PaymentProvider without STRIPE.
DO $$
BEGIN
IF EXISTS (
SELECT 1
FROM pg_type t
JOIN pg_enum e ON e.enumtypid = t.oid
WHERE t.typname = 'PaymentProvider'
AND e.enumlabel = 'STRIPE'
) THEN
DROP TYPE IF EXISTS "PaymentProvider_new";
CREATE TYPE "PaymentProvider_new" AS ENUM ('AMANPAY', 'PAYPAL', 'MANUAL');
ALTER TABLE "billing_invoices" ALTER COLUMN "paymentProvider" DROP DEFAULT;
ALTER TABLE "subscription_invoices" ALTER COLUMN "paymentProvider" DROP DEFAULT;
ALTER TABLE "rental_payments" ALTER COLUMN "paymentProvider" DROP DEFAULT;
ALTER TABLE "billing_invoices"
ALTER COLUMN "paymentProvider" TYPE "PaymentProvider_new"
USING ("paymentProvider"::text::"PaymentProvider_new");
ALTER TABLE "subscription_invoices"
ALTER COLUMN "paymentProvider" TYPE "PaymentProvider_new"
USING ("paymentProvider"::text::"PaymentProvider_new");
ALTER TABLE "rental_payments"
ALTER COLUMN "paymentProvider" TYPE "PaymentProvider_new"
USING ("paymentProvider"::text::"PaymentProvider_new");
IF EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = 'brand_settings'
AND column_name = 'paymentMethodsEnabled'
) THEN
ALTER TABLE "brand_settings"
ALTER COLUMN "paymentMethodsEnabled" TYPE "PaymentProvider_new"[]
USING (
COALESCE(
ARRAY(
SELECT x::text::"PaymentProvider_new"
FROM unnest("paymentMethodsEnabled") AS x
WHERE x::text <> 'STRIPE'
),
ARRAY[]::"PaymentProvider_new"[]
)
);
END IF;
DROP TYPE "PaymentProvider";
ALTER TYPE "PaymentProvider_new" RENAME TO "PaymentProvider";
ALTER TABLE "subscription_invoices" ALTER COLUMN "paymentProvider" SET DEFAULT 'AMANPAY';
END IF;
END $$;
@@ -0,0 +1,66 @@
-- Remap online gateway rows to manual before dropping provider values.
UPDATE "billing_invoices"
SET "paymentProvider" = 'MANUAL'
WHERE "paymentProvider"::text IN ('AMANPAY', 'PAYPAL', 'STRIPE');
UPDATE "subscription_invoices"
SET "paymentProvider" = 'MANUAL'
WHERE "paymentProvider"::text IN ('AMANPAY', 'PAYPAL', 'STRIPE');
UPDATE "rental_payments"
SET "paymentProvider" = 'MANUAL'
WHERE "paymentProvider"::text IN ('AMANPAY', 'PAYPAL', 'STRIPE');
DROP INDEX IF EXISTS "subscription_invoices_amanpayTransactionId_key";
DROP INDEX IF EXISTS "subscription_invoices_paypalCaptureId_key";
ALTER TABLE "subscription_invoices" DROP COLUMN IF EXISTS "amanpayTransactionId";
ALTER TABLE "subscription_invoices" DROP COLUMN IF EXISTS "paypalCaptureId";
DROP INDEX IF EXISTS "rental_payments_amanpayTransactionId_key";
DROP INDEX IF EXISTS "rental_payments_paypalCaptureId_key";
ALTER TABLE "rental_payments" DROP COLUMN IF EXISTS "amanpayTransactionId";
ALTER TABLE "rental_payments" DROP COLUMN IF EXISTS "paypalCaptureId";
ALTER TABLE "brand_settings" DROP COLUMN IF EXISTS "amanpayMerchantId";
ALTER TABLE "brand_settings" DROP COLUMN IF EXISTS "amanpaySecretKey";
ALTER TABLE "brand_settings" DROP COLUMN IF EXISTS "paypalEmail";
ALTER TABLE "brand_settings" DROP COLUMN IF EXISTS "paypalMerchantId";
ALTER TABLE "brand_settings" DROP COLUMN IF EXISTS "paymentMethodsEnabled";
ALTER TABLE "subscription_invoices" ALTER COLUMN "paymentProvider" DROP DEFAULT;
ALTER TABLE "subscription_invoices" ALTER COLUMN "paymentProvider" SET DEFAULT 'MANUAL';
DO $$
BEGIN
IF EXISTS (
SELECT 1
FROM pg_type t
JOIN pg_enum e ON e.enumtypid = t.oid
WHERE t.typname = 'PaymentProvider'
AND e.enumlabel IN ('AMANPAY', 'PAYPAL', 'STRIPE')
) THEN
DROP TYPE IF EXISTS "PaymentProvider_new";
CREATE TYPE "PaymentProvider_new" AS ENUM ('MANUAL');
ALTER TABLE "billing_invoices" ALTER COLUMN "paymentProvider" DROP DEFAULT;
ALTER TABLE "subscription_invoices" ALTER COLUMN "paymentProvider" DROP DEFAULT;
ALTER TABLE "rental_payments" ALTER COLUMN "paymentProvider" DROP DEFAULT;
ALTER TABLE "billing_invoices"
ALTER COLUMN "paymentProvider" TYPE "PaymentProvider_new"
USING ("paymentProvider"::text::"PaymentProvider_new");
ALTER TABLE "subscription_invoices"
ALTER COLUMN "paymentProvider" TYPE "PaymentProvider_new"
USING ("paymentProvider"::text::"PaymentProvider_new");
ALTER TABLE "rental_payments"
ALTER COLUMN "paymentProvider" TYPE "PaymentProvider_new"
USING ("paymentProvider"::text::"PaymentProvider_new");
DROP TYPE "PaymentProvider";
ALTER TYPE "PaymentProvider_new" RENAME TO "PaymentProvider";
ALTER TABLE "subscription_invoices" ALTER COLUMN "paymentProvider" SET DEFAULT 'MANUAL';
END IF;
END $$;
@@ -0,0 +1,25 @@
-- Keep only bank transfer and check as stored billing payment method types.
UPDATE "billing_payment_methods"
SET "type" = 'BANK_TRANSFER'
WHERE "type"::text IN ('CARD', 'ACH_DEBIT', 'WIRE_TRANSFER', 'MANUAL_INVOICE', 'PURCHASE_ORDER');
DO $$
BEGIN
IF EXISTS (
SELECT 1
FROM pg_type t
JOIN pg_enum e ON e.enumtypid = t.oid
WHERE t.typname = 'BillingPaymentMethodType'
AND e.enumlabel IN ('CARD', 'ACH_DEBIT', 'WIRE_TRANSFER', 'MANUAL_INVOICE', 'PURCHASE_ORDER')
) THEN
DROP TYPE IF EXISTS "BillingPaymentMethodType_new";
CREATE TYPE "BillingPaymentMethodType_new" AS ENUM ('BANK_TRANSFER', 'CHECK');
ALTER TABLE "billing_payment_methods"
ALTER COLUMN "type" TYPE "BillingPaymentMethodType_new"
USING ("type"::text::"BillingPaymentMethodType_new");
DROP TYPE "BillingPaymentMethodType";
ALTER TYPE "BillingPaymentMethodType_new" RENAME TO "BillingPaymentMethodType";
END IF;
END $$;