feat: wave 2 migration (P3, P5, P7 openspec changes)
Implements, verifies, and archives the three remaining Wave 2 changes from openspec/MIGRATION-PLAN.md. - add-wallet-settlement (P3): demo recharge, guarded withdrawal freeze and one-time admin review, paginated own fund entries, idempotent per-shop weekly/monthly settlement statements with commission rate and one-time payout confirmation. - add-merchant-onboarding (P5): personal/enterprise applications with one live application per user, guarded review with mandatory rejection reason, and transactional shop + owner provisioning returning one-time credentials; mall onboarding/status pages and an admin review console. - add-membership-messaging (P7): platform member levels, append-only growth accrual on order completion with guarded one-way leveling, order/shipment/ refund system messages with unread/read state and soft deletion, plus the mall header unread badge. Backend: migrations 0019-0023, new wallet, settlement, merchant_onboarding, membership and messaging modules, event hooks in order/fulfillment/aftersale, and integration suites for each. Shared contract extended and all three frontends updated; code indexes, domain docs, backend guidelines and the migration tracker synced. Verification: cargo test -p vmall-api green twice consecutively; mall, admin and shop-admin builds pass; browser smoke on every new surface; openspec validate --all --strict green (33 passed). The three changes share the @vmall/shared contract, the mall mock adapter and per-app locale/nav files, so they are committed together to keep every commit buildable.
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
// Buyer membership center: level, growth total, progress and growth history.
|
||||
export default {
|
||||
en: {
|
||||
membership: {
|
||||
title: "Membership",
|
||||
entry: "My level",
|
||||
loadFailed: "Unable to load your membership.",
|
||||
currentLevel: "Current level",
|
||||
benefits: "Level benefits",
|
||||
growthTotal: "Growth total",
|
||||
growthUnit: "growth",
|
||||
noLevel: "No level yet",
|
||||
noLevelHint: "Reach {threshold} {unit} to unlock {level}.",
|
||||
topLevel: "Top level reached",
|
||||
topLevelHint: "You are at the highest level — your benefits stay as they are.",
|
||||
progressTitle: "Progress to {level}",
|
||||
progressThreshold: "{current} / {threshold} {unit}",
|
||||
remaining: "{remaining} {unit} to go",
|
||||
historyTitle: "Growth history",
|
||||
historyEmpty: "No growth entries yet.",
|
||||
historyFailed: "Unable to load growth history.",
|
||||
historyDate: "Time",
|
||||
historyReason: "Reason",
|
||||
historyDelta: "Growth",
|
||||
historyTotal: "Total after",
|
||||
reason_order_complete: "Order completed",
|
||||
},
|
||||
},
|
||||
zh: {
|
||||
membership: {
|
||||
title: "会员中心",
|
||||
entry: "我的等级",
|
||||
loadFailed: "会员信息加载失败。",
|
||||
currentLevel: "当前等级",
|
||||
benefits: "等级权益",
|
||||
growthTotal: "成长值",
|
||||
growthUnit: "成长值",
|
||||
noLevel: "暂无等级",
|
||||
noLevelHint: "再获得 {threshold} {unit} 即可解锁 {level}。",
|
||||
topLevel: "已是最高等级",
|
||||
topLevelHint: "您已达到最高等级,权益保持不变。",
|
||||
progressTitle: "距离 {level}",
|
||||
progressThreshold: "{current} / {threshold} {unit}",
|
||||
remaining: "还差 {remaining} {unit}",
|
||||
historyTitle: "成长值明细",
|
||||
historyEmpty: "暂无成长值记录。",
|
||||
historyFailed: "成长值明细加载失败。",
|
||||
historyDate: "时间",
|
||||
historyReason: "原因",
|
||||
historyDelta: "成长值",
|
||||
historyTotal: "变动后累计",
|
||||
reason_order_complete: "订单完成",
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user