diff --git a/lib/types/payment.ts b/lib/types/payment.ts deleted file mode 100644 index 5fd6420..0000000 --- a/lib/types/payment.ts +++ /dev/null @@ -1 +0,0 @@ -export type PaymentProviderCode = "BEPUSDT" | "EPAY"; diff --git a/modules/order/repository.ts b/modules/order/repository.ts index 4d13146..7719072 100644 --- a/modules/order/repository.ts +++ b/modules/order/repository.ts @@ -1,4 +1,5 @@ import type { PrismaClient } from "../../generated/prisma/client"; +import type { PaymentProvider } from "../payment/types"; export function findOrderRecord(prisma: PrismaClient, orderNo: string) { return prisma.order.findUnique({ @@ -51,7 +52,7 @@ export function createOrderRecord( contactType: "EMAIL" | "QQ" | "TELEGRAM" | "OTHER"; contactValue?: string | null; buyerNote?: string | null; - paymentProvider: "BEPUSDT" | "EPAY"; + paymentProvider: PaymentProvider; paymentChannel?: string | null; }, ) { diff --git a/modules/order/service.ts b/modules/order/service.ts index 4777e45..51858ad 100644 --- a/modules/order/service.ts +++ b/modules/order/service.ts @@ -1,4 +1,5 @@ import { getContext } from "telefunc"; +import type { PaymentProvider } from "../payment/types"; import type { PrismaClient } from "../../generated/prisma/client"; import { conflictError, notFoundError } from "../../lib/app-error"; import { validateOrderInput } from "../../lib/validators/order"; @@ -38,7 +39,7 @@ function sleep(ms: number) { export async function createOrder(input: { productId: number; quantity: number; - paymentProvider: "BEPUSDT" | "EPAY"; + paymentProvider: PaymentProvider; paymentChannel?: string; contactType: "EMAIL" | "QQ" | "TELEGRAM" | "OTHER"; contactValue?: string; diff --git a/modules/order/types.ts b/modules/order/types.ts index 0be19c5..6bfc4fe 100644 --- a/modules/order/types.ts +++ b/modules/order/types.ts @@ -1,7 +1,9 @@ +import type { PaymentProvider } from "../payment/types"; + export interface CreateOrderInput { productId: number; quantity: number; - paymentProvider: "BEPUSDT" | "EPAY"; + paymentProvider: PaymentProvider; contactType: "EMAIL" | "QQ" | "TELEGRAM" | "OTHER"; contactValue?: string; buyerNote?: string; diff --git a/pages/product/@slug/+Page.vue b/pages/product/@slug/+Page.vue index eb2f3ce..7a36be2 100644 --- a/pages/product/@slug/+Page.vue +++ b/pages/product/@slug/+Page.vue @@ -87,6 +87,7 @@ import { useData } from "vike-vue/useData"; import { isEmail } from "../../../lib/validators/email"; import { formatCents } from "../../../lib/utils/money"; import { onCreateOrder } from "./createOrder.telefunc"; +import type { PaymentProvider } from "../../../modules/payment/types"; import { saveLocalOrder } from "../../../lib/local-orders"; import type { Data } from "./+data"; @@ -104,7 +105,7 @@ const form = reactive({ quantity: product?.minBuy ?? 1, contactValue: "", buyerNote: "", - paymentProvider: (paymentMethods[0]?.provider ?? "BEPUSDT") as "BEPUSDT" | "EPAY", + paymentProvider: (paymentMethods[0]?.provider ?? "BEPUSDT") as PaymentProvider, paymentChannel: "alipay", }); @@ -132,7 +133,7 @@ async function handleCreateOrder() { productId: product.id, quantity: form.quantity, paymentProvider: form.paymentProvider, - paymentChannel: form.paymentProvider === "EPAY" ? form.paymentChannel : undefined, + paymentChannel: form.paymentProvider === "EPAY" ? form.paymentChannel : form.paymentProvider === "ALIPAY" ? "pc" : undefined, contactType: "EMAIL", contactValue: contactEmail, buyerNote: form.buyerNote, diff --git a/pages/product/@slug/+data.ts b/pages/product/@slug/+data.ts index 1f2ca0f..8f4c789 100644 --- a/pages/product/@slug/+data.ts +++ b/pages/product/@slug/+data.ts @@ -1,7 +1,7 @@ import { getProductBySlug } from "../../../modules/catalog/service"; import { listEnabledPaymentMethods } from "../../../modules/payment/service"; -export type Data = ReturnType; +export type Data = Awaited>; export async function data(pageContext: { routeParams: { slug: string }; diff --git a/pages/product/@slug/createOrder.telefunc.ts b/pages/product/@slug/createOrder.telefunc.ts index 998114d..bdcd73e 100644 --- a/pages/product/@slug/createOrder.telefunc.ts +++ b/pages/product/@slug/createOrder.telefunc.ts @@ -1,9 +1,10 @@ import { createOrder } from "../../../modules/order/service"; +import type { PaymentProvider } from "../../../modules/payment/types"; export async function onCreateOrder(input: { productId: number; quantity: number; - paymentProvider: "BEPUSDT" | "EPAY"; + paymentProvider: PaymentProvider; paymentChannel?: string; contactType: "EMAIL"; contactValue: string;