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
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:
+129
@@ -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 $$;
|
||||
+66
@@ -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 $$;
|
||||
+25
@@ -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 $$;
|
||||
@@ -126,12 +126,8 @@ enum BillingLineItemType {
|
||||
}
|
||||
|
||||
enum BillingPaymentMethodType {
|
||||
CARD
|
||||
ACH_DEBIT
|
||||
BANK_TRANSFER
|
||||
WIRE_TRANSFER
|
||||
MANUAL_INVOICE
|
||||
PURCHASE_ORDER
|
||||
CHECK
|
||||
}
|
||||
|
||||
enum BillingPaymentIntentStatus {
|
||||
@@ -157,7 +153,6 @@ enum BillingPaymentAttemptStatus {
|
||||
}
|
||||
|
||||
enum SubscriptionCollectionMethod {
|
||||
STRIPE
|
||||
BANK_TRANSFER
|
||||
CHECK
|
||||
}
|
||||
@@ -244,9 +239,6 @@ enum BillingCreditNoteStatus {
|
||||
}
|
||||
|
||||
enum PaymentProvider {
|
||||
AMANPAY
|
||||
PAYPAL
|
||||
STRIPE
|
||||
MANUAL
|
||||
}
|
||||
|
||||
@@ -754,10 +746,7 @@ model SubscriptionInvoice {
|
||||
amount Int
|
||||
currency String @default("MAD")
|
||||
status InvoiceStatus
|
||||
amanpayTransactionId String? @unique
|
||||
paypalCaptureId String? @unique
|
||||
stripeCheckoutSessionId String? @unique
|
||||
paymentProvider PaymentProvider @default(AMANPAY)
|
||||
paymentProvider PaymentProvider @default(MANUAL)
|
||||
billingInvoiceId String? @unique
|
||||
billingInvoice BillingInvoice? @relation(fields: [billingInvoiceId], references: [id])
|
||||
dueAt DateTime?
|
||||
@@ -903,7 +892,7 @@ model BillingInvoice {
|
||||
billingAddress Json?
|
||||
providerInvoiceId String?
|
||||
paymentProvider PaymentProvider?
|
||||
collectionMethod SubscriptionCollectionMethod @default(STRIPE)
|
||||
collectionMethod SubscriptionCollectionMethod @default(BANK_TRANSFER)
|
||||
requestedPlan Plan?
|
||||
requestedBillingPeriod BillingPeriod?
|
||||
checkoutIdempotencyKey String?
|
||||
@@ -1468,11 +1457,6 @@ model BrandSettings {
|
||||
instagramUrl String?
|
||||
defaultLocale String @default("en")
|
||||
defaultCurrency String @default("MAD")
|
||||
amanpayMerchantId String?
|
||||
amanpaySecretKey String?
|
||||
paypalEmail String?
|
||||
paypalMerchantId String?
|
||||
paymentMethodsEnabled PaymentProvider[]
|
||||
isListedOnCarplace Boolean @default(true)
|
||||
carplaceRating Float?
|
||||
homePageConfig Json? @map("home_page_config")
|
||||
@@ -1900,10 +1884,6 @@ model RentalPayment {
|
||||
status PaymentStatus @default(PENDING)
|
||||
type PaymentType @default(CHARGE)
|
||||
paymentProvider PaymentProvider
|
||||
amanpayTransactionId String? @unique
|
||||
paypalCaptureId String? @unique
|
||||
stripeCheckoutSessionId String? @unique
|
||||
stripePaymentIntentId String? @unique
|
||||
paymentMethod String?
|
||||
reference String?
|
||||
note String?
|
||||
|
||||
Reference in New Issue
Block a user