feat: add comprehensive membership and stored value mall

This commit is contained in:
gqt
2026-07-12 20:38:33 +08:00
parent f3f8aee9a0
commit 62d59a2f03
6 changed files with 339 additions and 1 deletions
@@ -0,0 +1,31 @@
import { request } from './request'
import { toArray, toNumber } from './mappers'
import { toOrderBrief } from './order'
const toPlan = (item = {}) => ({
id: item.id ?? null,
name: item.name || '',
price: item.price || '0.00',
total_count: toNumber(item.total_count),
is_active: item.is_active === true,
courses: toArray(item.courses).map((course) => ({
id: course.id ?? null,
title: course.title || ''
})),
created_at: item.created_at || ''
})
export const membershipApi = {
getPlans() {
return request({
url: '/api/membership/plans'
}).then((data) => toArray(data.items || data).map(toPlan))
},
createMembershipOrder(planId) {
return request({
url: '/api/membership/orders',
method: 'POST',
data: { plan_id: planId }
}).then(toOrderBrief)
}
}