Commit d37f8ddc by Archer Committed by GitHub

feat: support custom coupon expiration days (#7415)

parent c8608e6d
...@@ -30,7 +30,7 @@ export const CreateCouponSubscriptionSchema = z.object({ ...@@ -30,7 +30,7 @@ export const CreateCouponSubscriptionSchema = z.object({
}); });
export type CreateCouponSubscriptionType = z.infer<typeof CreateCouponSubscriptionSchema>; export type CreateCouponSubscriptionType = z.infer<typeof CreateCouponSubscriptionSchema>;
export const CreateCouponBodySchema = z.object({ const CreateCouponBodyBaseSchema = z.object({
subscriptions: z.array(CreateCouponSubscriptionSchema).min(1).meta({ subscriptions: z.array(CreateCouponSubscriptionSchema).min(1).meta({
description: '兑换码包含的套餐列表' description: '兑换码包含的套餐列表'
}), }),
...@@ -38,10 +38,6 @@ export const CreateCouponBodySchema = z.object({ ...@@ -38,10 +38,6 @@ export const CreateCouponBodySchema = z.object({
description: '生成兑换码数量', description: '生成兑换码数量',
example: 1 example: 1
}), }),
type: z.enum(CouponTypeEnum).meta({
description: '兑换码类型',
example: CouponTypeEnum.activity
}),
price: NumSchema.nonnegative().optional().meta({ price: NumSchema.nonnegative().optional().meta({
description: '订单原价', description: '订单原价',
example: 100 example: 100
...@@ -59,6 +55,31 @@ export const CreateCouponBodySchema = z.object({ ...@@ -59,6 +55,31 @@ export const CreateCouponBodySchema = z.object({
example: '线下付款兑换码' example: '线下付款兑换码'
}) })
}); });
export const CreateCouponBodySchema = z.discriminatedUnion('type', [
CreateCouponBodyBaseSchema.extend({
type: z.literal(CouponTypeEnum.bank).meta({
description: '兑换码类型',
example: CouponTypeEnum.bank
}),
expiredDays: IntSchema.positive().optional().default(360).meta({
description: '兑换码有效天数;不传时默认 360 天',
example: 360
})
}),
CreateCouponBodyBaseSchema.extend({
type: z.literal(CouponTypeEnum.activity).meta({
description: '兑换码类型',
example: CouponTypeEnum.activity
}),
expiredDays: IntSchema.positive().optional().default(30).meta({
description: '兑换码有效天数;不传时默认 30 天',
example: 30
})
})
]);
export type CreateCouponBodyInputType = z.input<typeof CreateCouponBodySchema>;
export type CreateCouponBodyType = z.infer<typeof CreateCouponBodySchema>; export type CreateCouponBodyType = z.infer<typeof CreateCouponBodySchema>;
export const CreateCouponResponseSchema = z export const CreateCouponResponseSchema = z
......
Subproject commit 53897c1c15c00adf4fc79461fd17e109e7948813 Subproject commit a704153cf360c5b4ca60ac16c5788b97aecd8198
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment