feat: expand superadmin edits and minio docs

This commit is contained in:
2026-01-17 19:32:46 +08:00
parent 3af5b20bcc
commit 984a404b5f
25 changed files with 2688 additions and 36 deletions

View File

@@ -997,6 +997,121 @@ const docTemplate = `{
}
}
},
"/super/v1/creators/{tenantID}/payout-accounts": {
"post": {
"description": "Create payout account for tenant",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Finance"
],
"summary": "Create payout account",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Tenant ID",
"name": "tenantID",
"in": "path",
"required": true
},
{
"description": "Create form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.SuperPayoutAccountCreateForm"
}
}
],
"responses": {
"200": {
"description": "Created",
"schema": {
"type": "string"
}
}
}
}
},
"/super/v1/creators/{tenantID}/settings": {
"get": {
"description": "Get creator settings by tenant ID",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Creator"
],
"summary": "Get creator settings",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Tenant ID",
"name": "tenantID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/dto.Settings"
}
}
}
},
"put": {
"description": "Update creator settings by tenant ID",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Creator"
],
"summary": "Update creator settings",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Tenant ID",
"name": "tenantID",
"in": "path",
"required": true
},
{
"description": "Settings form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.Settings"
}
}
],
"responses": {
"200": {
"description": "Updated",
"schema": {
"type": "string"
}
}
}
}
},
"/super/v1/finance/anomalies/balances": {
"get": {
"description": "List balance anomalies across users",
@@ -1358,6 +1473,48 @@ const docTemplate = `{
}
}
},
"/super/v1/notifications/templates/{id}": {
"patch": {
"description": "Update notification template",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Notification"
],
"summary": "Update notification template",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Template ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.SuperNotificationTemplateUpdateForm"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/dto.SuperNotificationTemplateItem"
}
}
}
}
},
"/super/v1/orders": {
"get": {
"description": "List orders",
@@ -1675,6 +1832,46 @@ const docTemplate = `{
}
}
}
},
"patch": {
"description": "Update payout account across tenants",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Finance"
],
"summary": "Update payout account",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Payout account ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.SuperPayoutAccountUpdateForm"
}
}
],
"responses": {
"200": {
"description": "Updated",
"schema": {
"type": "string"
}
}
}
}
},
"/super/v1/payout-accounts/{id}/review": {
@@ -2813,6 +3010,46 @@ const docTemplate = `{
}
}
}
},
"patch": {
"description": "Update user profile fields",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "Update user profile",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.SuperUserProfileUpdateForm"
}
}
],
"responses": {
"200": {
"description": "Updated",
"schema": {
"type": "string"
}
}
}
}
},
"/super/v1/users/{id}/coupons": {
@@ -9099,6 +9336,39 @@ const docTemplate = `{
}
}
},
"dto.SuperNotificationTemplateUpdateForm": {
"type": "object",
"properties": {
"content": {
"description": "Content 通知内容(可选)。",
"type": "string"
},
"is_active": {
"description": "IsActive 是否启用(可选)。",
"type": "boolean"
},
"name": {
"description": "Name 模板名称(可选)。",
"type": "string"
},
"tenant_id": {
"description": "TenantID 租户ID不传代表不修改租户归属。",
"type": "integer"
},
"title": {
"description": "Title 通知标题(可选)。",
"type": "string"
},
"type": {
"description": "Type 通知类型system/order/audit/interaction可选。",
"allOf": [
{
"$ref": "#/definitions/consts.NotificationType"
}
]
}
}
},
"dto.SuperOrderAnomalyItem": {
"type": "object",
"properties": {
@@ -9383,6 +9653,45 @@ const docTemplate = `{
}
}
},
"dto.SuperPayoutAccountCreateForm": {
"type": "object",
"required": [
"account",
"name",
"realname",
"type",
"user_id"
],
"properties": {
"account": {
"description": "Account 收款账号。",
"type": "string",
"maxLength": 128
},
"name": {
"description": "Name 账户名称/开户行。",
"type": "string",
"maxLength": 128
},
"realname": {
"description": "Realname 收款人姓名。",
"type": "string",
"maxLength": 128
},
"type": {
"description": "Type 账户类型bank/alipay。",
"type": "string",
"enum": [
"bank",
"alipay"
]
},
"user_id": {
"description": "UserID 收款账户归属用户ID。",
"type": "integer"
}
}
},
"dto.SuperPayoutAccountItem": {
"type": "object",
"properties": {
@@ -9480,6 +9789,34 @@ const docTemplate = `{
}
}
},
"dto.SuperPayoutAccountUpdateForm": {
"type": "object",
"properties": {
"account": {
"description": "Account 收款账号(可选)。",
"type": "string",
"maxLength": 128
},
"name": {
"description": "Name 账户名称/开户行(可选)。",
"type": "string",
"maxLength": 128
},
"realname": {
"description": "Realname 收款人姓名(可选)。",
"type": "string",
"maxLength": 128
},
"type": {
"description": "Type 账户类型bank/alipay可选。",
"type": "string",
"enum": [
"bank",
"alipay"
]
}
}
},
"dto.SuperReportExportForm": {
"type": "object",
"properties": {
@@ -9954,6 +10291,43 @@ const docTemplate = `{
}
}
},
"dto.SuperUserProfileUpdateForm": {
"type": "object",
"properties": {
"avatar": {
"description": "Avatar 头像URL可选空字符串表示清空。",
"type": "string"
},
"bio": {
"description": "Bio 个人简介(可选,空字符串表示清空)。",
"type": "string"
},
"gender": {
"description": "Gender 性别(可选)。",
"allOf": [
{
"$ref": "#/definitions/consts.Gender"
}
]
},
"id_card": {
"description": "IDCard 身份证号(可选,用于更新实名认证信息)。",
"type": "string"
},
"is_real_name_verified": {
"description": "IsRealNameVerified 是否已实名认证(可选)。",
"type": "boolean"
},
"nickname": {
"description": "Nickname 昵称(可选,空字符串表示清空)。",
"type": "string"
},
"real_name": {
"description": "RealName 真实姓名(可选,用于更新实名认证信息)。",
"type": "string"
}
}
},
"dto.SuperUserRealNameResponse": {
"type": "object",
"properties": {
@@ -10663,6 +11037,10 @@ const docTemplate = `{
"dto.UserItem": {
"type": "object",
"properties": {
"avatar": {
"description": "Avatar 用户头像URL资料展示。",
"type": "string"
},
"balance": {
"description": "Balance 账户可用余额(分)。",
"type": "integer"
@@ -10671,18 +11049,38 @@ const docTemplate = `{
"description": "BalanceFrozen 账户冻结余额(分)。",
"type": "integer"
},
"bio": {
"description": "Bio 用户个人简介。",
"type": "string"
},
"created_at": {
"description": "CreatedAt 创建时间RFC3339。",
"type": "string"
},
"gender": {
"description": "Gender 用户性别male/female/secret。",
"allOf": [
{
"$ref": "#/definitions/consts.Gender"
}
]
},
"id": {
"description": "ID 用户ID。",
"type": "integer"
},
"is_real_name_verified": {
"description": "IsRealNameVerified 是否已实名认证。",
"type": "boolean"
},
"joined_tenant_count": {
"description": "JoinedTenantCount 加入的租户数量。",
"type": "integer"
},
"nickname": {
"description": "Nickname 用户昵称(资料展示)。",
"type": "string"
},
"owned_tenant_count": {
"description": "OwnedTenantCount 拥有的租户数量。",
"type": "integer"

View File

@@ -991,6 +991,121 @@
}
}
},
"/super/v1/creators/{tenantID}/payout-accounts": {
"post": {
"description": "Create payout account for tenant",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Finance"
],
"summary": "Create payout account",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Tenant ID",
"name": "tenantID",
"in": "path",
"required": true
},
{
"description": "Create form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.SuperPayoutAccountCreateForm"
}
}
],
"responses": {
"200": {
"description": "Created",
"schema": {
"type": "string"
}
}
}
}
},
"/super/v1/creators/{tenantID}/settings": {
"get": {
"description": "Get creator settings by tenant ID",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Creator"
],
"summary": "Get creator settings",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Tenant ID",
"name": "tenantID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/dto.Settings"
}
}
}
},
"put": {
"description": "Update creator settings by tenant ID",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Creator"
],
"summary": "Update creator settings",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Tenant ID",
"name": "tenantID",
"in": "path",
"required": true
},
{
"description": "Settings form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.Settings"
}
}
],
"responses": {
"200": {
"description": "Updated",
"schema": {
"type": "string"
}
}
}
}
},
"/super/v1/finance/anomalies/balances": {
"get": {
"description": "List balance anomalies across users",
@@ -1352,6 +1467,48 @@
}
}
},
"/super/v1/notifications/templates/{id}": {
"patch": {
"description": "Update notification template",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Notification"
],
"summary": "Update notification template",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Template ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.SuperNotificationTemplateUpdateForm"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/dto.SuperNotificationTemplateItem"
}
}
}
}
},
"/super/v1/orders": {
"get": {
"description": "List orders",
@@ -1669,6 +1826,46 @@
}
}
}
},
"patch": {
"description": "Update payout account across tenants",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Finance"
],
"summary": "Update payout account",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "Payout account ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.SuperPayoutAccountUpdateForm"
}
}
],
"responses": {
"200": {
"description": "Updated",
"schema": {
"type": "string"
}
}
}
}
},
"/super/v1/payout-accounts/{id}/review": {
@@ -2807,6 +3004,46 @@
}
}
}
},
"patch": {
"description": "Update user profile fields",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "Update user profile",
"parameters": [
{
"type": "integer",
"format": "int64",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.SuperUserProfileUpdateForm"
}
}
],
"responses": {
"200": {
"description": "Updated",
"schema": {
"type": "string"
}
}
}
}
},
"/super/v1/users/{id}/coupons": {
@@ -9093,6 +9330,39 @@
}
}
},
"dto.SuperNotificationTemplateUpdateForm": {
"type": "object",
"properties": {
"content": {
"description": "Content 通知内容(可选)。",
"type": "string"
},
"is_active": {
"description": "IsActive 是否启用(可选)。",
"type": "boolean"
},
"name": {
"description": "Name 模板名称(可选)。",
"type": "string"
},
"tenant_id": {
"description": "TenantID 租户ID不传代表不修改租户归属。",
"type": "integer"
},
"title": {
"description": "Title 通知标题(可选)。",
"type": "string"
},
"type": {
"description": "Type 通知类型system/order/audit/interaction可选。",
"allOf": [
{
"$ref": "#/definitions/consts.NotificationType"
}
]
}
}
},
"dto.SuperOrderAnomalyItem": {
"type": "object",
"properties": {
@@ -9377,6 +9647,45 @@
}
}
},
"dto.SuperPayoutAccountCreateForm": {
"type": "object",
"required": [
"account",
"name",
"realname",
"type",
"user_id"
],
"properties": {
"account": {
"description": "Account 收款账号。",
"type": "string",
"maxLength": 128
},
"name": {
"description": "Name 账户名称/开户行。",
"type": "string",
"maxLength": 128
},
"realname": {
"description": "Realname 收款人姓名。",
"type": "string",
"maxLength": 128
},
"type": {
"description": "Type 账户类型bank/alipay。",
"type": "string",
"enum": [
"bank",
"alipay"
]
},
"user_id": {
"description": "UserID 收款账户归属用户ID。",
"type": "integer"
}
}
},
"dto.SuperPayoutAccountItem": {
"type": "object",
"properties": {
@@ -9474,6 +9783,34 @@
}
}
},
"dto.SuperPayoutAccountUpdateForm": {
"type": "object",
"properties": {
"account": {
"description": "Account 收款账号(可选)。",
"type": "string",
"maxLength": 128
},
"name": {
"description": "Name 账户名称/开户行(可选)。",
"type": "string",
"maxLength": 128
},
"realname": {
"description": "Realname 收款人姓名(可选)。",
"type": "string",
"maxLength": 128
},
"type": {
"description": "Type 账户类型bank/alipay可选。",
"type": "string",
"enum": [
"bank",
"alipay"
]
}
}
},
"dto.SuperReportExportForm": {
"type": "object",
"properties": {
@@ -9948,6 +10285,43 @@
}
}
},
"dto.SuperUserProfileUpdateForm": {
"type": "object",
"properties": {
"avatar": {
"description": "Avatar 头像URL可选空字符串表示清空。",
"type": "string"
},
"bio": {
"description": "Bio 个人简介(可选,空字符串表示清空)。",
"type": "string"
},
"gender": {
"description": "Gender 性别(可选)。",
"allOf": [
{
"$ref": "#/definitions/consts.Gender"
}
]
},
"id_card": {
"description": "IDCard 身份证号(可选,用于更新实名认证信息)。",
"type": "string"
},
"is_real_name_verified": {
"description": "IsRealNameVerified 是否已实名认证(可选)。",
"type": "boolean"
},
"nickname": {
"description": "Nickname 昵称(可选,空字符串表示清空)。",
"type": "string"
},
"real_name": {
"description": "RealName 真实姓名(可选,用于更新实名认证信息)。",
"type": "string"
}
}
},
"dto.SuperUserRealNameResponse": {
"type": "object",
"properties": {
@@ -10657,6 +11031,10 @@
"dto.UserItem": {
"type": "object",
"properties": {
"avatar": {
"description": "Avatar 用户头像URL资料展示。",
"type": "string"
},
"balance": {
"description": "Balance 账户可用余额(分)。",
"type": "integer"
@@ -10665,18 +11043,38 @@
"description": "BalanceFrozen 账户冻结余额(分)。",
"type": "integer"
},
"bio": {
"description": "Bio 用户个人简介。",
"type": "string"
},
"created_at": {
"description": "CreatedAt 创建时间RFC3339。",
"type": "string"
},
"gender": {
"description": "Gender 用户性别male/female/secret。",
"allOf": [
{
"$ref": "#/definitions/consts.Gender"
}
]
},
"id": {
"description": "ID 用户ID。",
"type": "integer"
},
"is_real_name_verified": {
"description": "IsRealNameVerified 是否已实名认证。",
"type": "boolean"
},
"joined_tenant_count": {
"description": "JoinedTenantCount 加入的租户数量。",
"type": "integer"
},
"nickname": {
"description": "Nickname 用户昵称(资料展示)。",
"type": "string"
},
"owned_tenant_count": {
"description": "OwnedTenantCount 拥有的租户数量。",
"type": "integer"

View File

@@ -2032,6 +2032,28 @@ definitions:
description: UpdatedAt 更新时间RFC3339
type: string
type: object
dto.SuperNotificationTemplateUpdateForm:
properties:
content:
description: Content 通知内容(可选)。
type: string
is_active:
description: IsActive 是否启用(可选)。
type: boolean
name:
description: Name 模板名称(可选)。
type: string
tenant_id:
description: TenantID 租户ID不传代表不修改租户归属
type: integer
title:
description: Title 通知标题(可选)。
type: string
type:
allOf:
- $ref: '#/definitions/consts.NotificationType'
description: Type 通知类型system/order/audit/interaction可选
type: object
dto.SuperOrderAnomalyItem:
properties:
amount_paid:
@@ -2219,6 +2241,36 @@ definitions:
description: Reason 退款原因说明。
type: string
type: object
dto.SuperPayoutAccountCreateForm:
properties:
account:
description: Account 收款账号。
maxLength: 128
type: string
name:
description: Name 账户名称/开户行。
maxLength: 128
type: string
realname:
description: Realname 收款人姓名。
maxLength: 128
type: string
type:
description: Type 账户类型bank/alipay
enum:
- bank
- alipay
type: string
user_id:
description: UserID 收款账户归属用户ID。
type: integer
required:
- account
- name
- realname
- type
- user_id
type: object
dto.SuperPayoutAccountItem:
properties:
account:
@@ -2288,6 +2340,27 @@ definitions:
required:
- action
type: object
dto.SuperPayoutAccountUpdateForm:
properties:
account:
description: Account 收款账号(可选)。
maxLength: 128
type: string
name:
description: Name 账户名称/开户行(可选)。
maxLength: 128
type: string
realname:
description: Realname 收款人姓名(可选)。
maxLength: 128
type: string
type:
description: Type 账户类型bank/alipay可选
enum:
- bank
- alipay
type: string
type: object
dto.SuperReportExportForm:
properties:
end_at:
@@ -2609,6 +2682,31 @@ definitions:
description: Type 通知类型。
type: string
type: object
dto.SuperUserProfileUpdateForm:
properties:
avatar:
description: Avatar 头像URL可选空字符串表示清空
type: string
bio:
description: Bio 个人简介(可选,空字符串表示清空)。
type: string
gender:
allOf:
- $ref: '#/definitions/consts.Gender'
description: Gender 性别(可选)。
id_card:
description: IDCard 身份证号(可选,用于更新实名认证信息)。
type: string
is_real_name_verified:
description: IsRealNameVerified 是否已实名认证(可选)。
type: boolean
nickname:
description: Nickname 昵称(可选,空字符串表示清空)。
type: string
real_name:
description: RealName 真实姓名(可选,用于更新实名认证信息)。
type: string
type: object
dto.SuperUserRealNameResponse:
properties:
id_card_masked:
@@ -3106,21 +3204,37 @@ definitions:
type: object
dto.UserItem:
properties:
avatar:
description: Avatar 用户头像URL资料展示
type: string
balance:
description: Balance 账户可用余额(分)。
type: integer
balance_frozen:
description: BalanceFrozen 账户冻结余额(分)。
type: integer
bio:
description: Bio 用户个人简介。
type: string
created_at:
description: CreatedAt 创建时间RFC3339
type: string
gender:
allOf:
- $ref: '#/definitions/consts.Gender'
description: Gender 用户性别male/female/secret
id:
description: ID 用户ID。
type: integer
is_real_name_verified:
description: IsRealNameVerified 是否已实名认证。
type: boolean
joined_tenant_count:
description: JoinedTenantCount 加入的租户数量。
type: integer
nickname:
description: Nickname 用户昵称(资料展示)。
type: string
owned_tenant_count:
description: OwnedTenantCount 拥有的租户数量。
type: integer
@@ -4060,6 +4174,83 @@ paths:
summary: List creators
tags:
- Creator
/super/v1/creators/{tenantID}/payout-accounts:
post:
consumes:
- application/json
description: Create payout account for tenant
parameters:
- description: Tenant ID
format: int64
in: path
name: tenantID
required: true
type: integer
- description: Create form
in: body
name: form
required: true
schema:
$ref: '#/definitions/dto.SuperPayoutAccountCreateForm'
produces:
- application/json
responses:
"200":
description: Created
schema:
type: string
summary: Create payout account
tags:
- Finance
/super/v1/creators/{tenantID}/settings:
get:
consumes:
- application/json
description: Get creator settings by tenant ID
parameters:
- description: Tenant ID
format: int64
in: path
name: tenantID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.Settings'
summary: Get creator settings
tags:
- Creator
put:
consumes:
- application/json
description: Update creator settings by tenant ID
parameters:
- description: Tenant ID
format: int64
in: path
name: tenantID
required: true
type: integer
- description: Settings form
in: body
name: form
required: true
schema:
$ref: '#/definitions/dto.Settings'
produces:
- application/json
responses:
"200":
description: Updated
schema:
type: string
summary: Update creator settings
tags:
- Creator
/super/v1/finance/anomalies/balances:
get:
consumes:
@@ -4281,6 +4472,34 @@ paths:
summary: Create notification template
tags:
- Notification
/super/v1/notifications/templates/{id}:
patch:
consumes:
- application/json
description: Update notification template
parameters:
- description: Template ID
format: int64
in: path
name: id
required: true
type: integer
- description: Update form
in: body
name: form
required: true
schema:
$ref: '#/definitions/dto.SuperNotificationTemplateUpdateForm'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.SuperNotificationTemplateItem'
summary: Update notification template
tags:
- Notification
/super/v1/orders:
get:
consumes:
@@ -4486,6 +4705,33 @@ paths:
summary: Remove payout account
tags:
- Finance
patch:
consumes:
- application/json
description: Update payout account across tenants
parameters:
- description: Payout account ID
format: int64
in: path
name: id
required: true
type: integer
- description: Update form
in: body
name: form
required: true
schema:
$ref: '#/definitions/dto.SuperPayoutAccountUpdateForm'
produces:
- application/json
responses:
"200":
description: Updated
schema:
type: string
summary: Update payout account
tags:
- Finance
/super/v1/payout-accounts/{id}/review:
post:
consumes:
@@ -5187,6 +5433,33 @@ paths:
summary: Get user
tags:
- User
patch:
consumes:
- application/json
description: Update user profile fields
parameters:
- description: User ID
format: int64
in: path
name: id
required: true
type: integer
- description: Update form
in: body
name: form
required: true
schema:
$ref: '#/definitions/dto.SuperUserProfileUpdateForm'
produces:
- application/json
responses:
"200":
description: Updated
schema:
type: string
summary: Update user profile
tags:
- User
/super/v1/users/{id}/coupons:
get:
consumes: