feat(ECR-015): RedemptionCode 兑换码并 Closed

批次生成/作废、C 端兑码延长会员;admin-h5 /codes。
Loop continuous。Next:ECR-016 UserIntelligence。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-07 18:16:13 +08:00
co-authored by Cursor
parent 0e26aabef8
commit 1eeb0b00e7
33 changed files with 1073 additions and 36 deletions
+64
View File
@@ -296,6 +296,49 @@ paths:
'403':
description: Forbidden
/api/v1/admin/redemption-batches:
get:
tags: [admin]
summary: List redemption batches
responses: { '200': { description: OK } }
post:
tags: [admin]
summary: Create redemption batch
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [label, plan_code, quantity]
properties:
label: { type: string }
plan_code: { type: string }
quantity: { type: integer, minimum: 1, maximum: 100 }
responses: { '200': { description: OK } }
/api/v1/admin/redemption-batches/{id}/codes:
get:
tags: [admin]
summary: List codes in batch
parameters:
- in: path
name: id
required: true
schema: { type: string, format: uuid }
responses: { '200': { description: OK } }
/api/v1/admin/redemption-codes/{id}/disable:
post:
tags: [admin]
summary: Disable unused code
parameters:
- in: path
name: id
required: true
schema: { type: string, format: uuid }
responses: { '200': { description: OK } }
/api/v1/admin/orders:
get:
tags: [admin]
@@ -1010,6 +1053,27 @@ paths:
schema:
$ref: '#/components/schemas/EnvelopeMembershipMe'
/api/v1/membership/redeem:
post:
tags: [commerce]
summary: 兑换会员码
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [code]
properties:
code: { type: string }
responses:
'200':
description: OK
'400':
description: Invalid or used code
'401':
description: Unauthorized
/api/v1/orders:
post:
tags: [commerce]