new-api/controller
zizi 0a0616a370 feat: add subscription redemption support to redemption codes
Redemption codes can now redeem either quota (existing) or a subscription
plan (new). The Redemption model gains Type (1=quota, 2=subscription) and
PlanId fields. When Type=2, Redeem() calls CreateUserSubscriptionFromPlanTx
to activate the plan, reusing all existing subscription logic (purchase
limits, group upgrade, quota reset, expiry). Old codes default to Type=0
which behaves identically to Type=1 (quota).
2026-05-19 01:10:14 +08:00
..
2026-04-23 21:37:03 +08:00
2026-02-17 18:00:10 +08:00
2026-02-17 18:00:10 +08:00
2025-03-15 19:10:12 +08:00
2026-03-23 00:48:55 +08:00
2026-05-12 16:47:02 +08:00
2026-05-06 18:20:02 +08:00
2026-05-12 16:47:02 +08:00
2026-05-12 16:47:02 +08:00
2026-05-12 16:47:02 +08:00
2026-05-12 16:47:02 +08:00