feat(r3): complete order and payment flow
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
-- R1 product fields and R3 order idempotency fields.
|
||||
ALTER TABLE "Product"
|
||||
ADD COLUMN IF NOT EXISTS "originalPrice" DECIMAL(10,2),
|
||||
ADD COLUMN IF NOT EXISTS "leadTime" TEXT NOT NULL DEFAULT '7-10 个工作日',
|
||||
ADD COLUMN IF NOT EXISTS "subtitle" TEXT,
|
||||
ADD COLUMN IF NOT EXISTS "tone" INTEGER[] NOT NULL DEFAULT ARRAY[]::INTEGER[],
|
||||
ADD COLUMN IF NOT EXISTS "tags" TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
||||
ADD COLUMN IF NOT EXISTS "specs" JSONB,
|
||||
ADD COLUMN IF NOT EXISTS "mask" JSONB,
|
||||
ADD COLUMN IF NOT EXISTS "story" TEXT,
|
||||
ADD COLUMN IF NOT EXISTS "scene" TEXT,
|
||||
ADD COLUMN IF NOT EXISTS "iconImg" TEXT,
|
||||
ADD COLUMN IF NOT EXISTS "sort" INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
ALTER TABLE "Order"
|
||||
ADD COLUMN IF NOT EXISTS "requestId" TEXT,
|
||||
ADD COLUMN IF NOT EXISTS "paidAt" TIMESTAMP(3);
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS "Order_userId_requestId_key" ON "Order"("userId", "requestId");
|
||||
@@ -0,0 +1,11 @@
|
||||
-- 待付款订单统一在服务端以创建后 30 分钟为截止时间,避免只由客户端倒计时控制。
|
||||
ALTER TYPE "OrderStatus" ADD VALUE IF NOT EXISTS 'PAYMENT_EXPIRED';
|
||||
|
||||
ALTER TABLE "Order" ADD COLUMN IF NOT EXISTS "paymentExpiresAt" TIMESTAMP(3);
|
||||
|
||||
-- 为已有待付款订单补齐截止时间;历史订单会按创建时间计算并在下一次读取时自动过期。
|
||||
UPDATE "Order"
|
||||
SET "paymentExpiresAt" = "createdAt" + INTERVAL '30 minutes'
|
||||
WHERE "paymentExpiresAt" IS NULL AND "status" = 'PENDING';
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "Order_paymentExpiresAt_idx" ON "Order"("paymentExpiresAt");
|
||||
Reference in New Issue
Block a user