|
@@ -77,9 +77,14 @@ export async function handleBookEvent(ctx: Context, env: Env): Promise<void> {
|
|
|
if (coupons.length > 1) {
|
|
if (coupons.length > 1) {
|
|
|
const keyboard = new InlineKeyboard();
|
|
const keyboard = new InlineKeyboard();
|
|
|
coupons.forEach((coupon, index) => {
|
|
coupons.forEach((coupon, index) => {
|
|
|
- const discountText = coupon.type === 'percentage'
|
|
|
|
|
- ? `${coupon.value}%`
|
|
|
|
|
- : `¥${coupon.value}`;
|
|
|
|
|
|
|
+ let discountText: string;
|
|
|
|
|
+ if (coupon.type === 'percentage') {
|
|
|
|
|
+ const price = Number(selectedSlot.price);
|
|
|
|
|
+ const discountAmount = Math.round(price * Number(coupon.value) / 100);
|
|
|
|
|
+ discountText = `${coupon.value}% | ¥${discountAmount}`;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ discountText = `¥${coupon.value}`;
|
|
|
|
|
+ }
|
|
|
keyboard.text(
|
|
keyboard.text(
|
|
|
`${coupon.code} (${discountText})`,
|
|
`${coupon.code} (${discountText})`,
|
|
|
`select_coupon_${eventId}_${slotIndex}_${coupon.code}`
|
|
`select_coupon_${eventId}_${slotIndex}_${coupon.code}`
|