6621 lines
224 KiB
Go
6621 lines
224 KiB
Go
// Package docs Code generated by swaggo/swag. DO NOT EDIT
|
||
package docs
|
||
|
||
import "github.com/rogeecn/swag"
|
||
|
||
const docTemplate = `{
|
||
"schemes": {{ marshal .Schemes }},
|
||
"swagger": "2.0",
|
||
"info": {
|
||
"description": "{{escape .Description}}",
|
||
"title": "{{.Title}}",
|
||
"termsOfService": "http://swagger.io/terms/",
|
||
"contact": {
|
||
"name": "UserName",
|
||
"url": "http://www.swagger.io/support",
|
||
"email": "support@swagger.io"
|
||
},
|
||
"license": {
|
||
"name": "Apache 2.0",
|
||
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
|
||
},
|
||
"version": "{{.Version}}"
|
||
},
|
||
"host": "{{.Host}}",
|
||
"basePath": "{{.BasePath}}",
|
||
"paths": {
|
||
"/super/v1/auth/login": {
|
||
"post": {
|
||
"description": "Login",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Auth"
|
||
],
|
||
"summary": "Login",
|
||
"parameters": [
|
||
{
|
||
"description": "Login form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/quyun_v2_app_http_super_v1_dto.LoginForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/quyun_v2_app_http_super_v1_dto.LoginResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/auth/token": {
|
||
"get": {
|
||
"description": "Check token",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Auth"
|
||
],
|
||
"summary": "Check token",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/quyun_v2_app_http_super_v1_dto.LoginResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/contents": {
|
||
"get": {
|
||
"description": "List contents",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "List contents",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page size",
|
||
"name": "limit",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.AdminContentItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/contents/{id}/review": {
|
||
"post": {
|
||
"description": "Review content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Review content",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Review form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.SuperContentReviewForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Reviewed",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/orders": {
|
||
"get": {
|
||
"description": "List orders",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Order"
|
||
],
|
||
"summary": "List orders",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page size",
|
||
"name": "limit",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.SuperOrderItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/orders/statistics": {
|
||
"get": {
|
||
"description": "Order statistics",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Order"
|
||
],
|
||
"summary": "Order statistics",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.OrderStatisticsResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/orders/{id}": {
|
||
"get": {
|
||
"description": "Get order",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Order"
|
||
],
|
||
"summary": "Get order",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Order ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.SuperOrderDetail"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/orders/{id}/refund": {
|
||
"post": {
|
||
"description": "Refund order",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Order"
|
||
],
|
||
"summary": "Refund order",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Order ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Refund form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.SuperOrderRefundForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Refunded",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/tenants": {
|
||
"get": {
|
||
"description": "List tenants",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Tenant"
|
||
],
|
||
"summary": "List tenants",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page size",
|
||
"name": "limit",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Name",
|
||
"name": "name",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.TenantItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"description": "Create tenant",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Tenant"
|
||
],
|
||
"summary": "Create tenant",
|
||
"parameters": [
|
||
{
|
||
"description": "Create form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantCreateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Created",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/tenants/health": {
|
||
"get": {
|
||
"description": "Tenant health overview",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Tenant"
|
||
],
|
||
"summary": "Tenant health overview",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page size",
|
||
"name": "limit",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.TenantHealthItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/tenants/statuses": {
|
||
"get": {
|
||
"description": "Tenant statuses",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Tenant"
|
||
],
|
||
"summary": "Tenant statuses",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/requests.KV"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/tenants/{id}": {
|
||
"get": {
|
||
"description": "Get tenant",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Tenant"
|
||
],
|
||
"summary": "Get tenant",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantItem"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"patch": {
|
||
"description": "Update tenant expire",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Tenant"
|
||
],
|
||
"summary": "Update tenant expire",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Update form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantExpireUpdateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Updated",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/tenants/{id}/status": {
|
||
"patch": {
|
||
"description": "Update tenant status",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Tenant"
|
||
],
|
||
"summary": "Update tenant status",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Update form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantStatusUpdateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Updated",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/tenants/{tenantID}/contents": {
|
||
"get": {
|
||
"description": "List contents by tenant",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "List tenant contents",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "tenantID",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page size",
|
||
"name": "limit",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.AdminContentItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/tenants/{tenantID}/contents/{contentID}/status": {
|
||
"patch": {
|
||
"description": "Update content status",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Update content status",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "tenantID",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "contentID",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Update form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.SuperTenantContentStatusUpdateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Updated",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/tenants/{tenantID}/users": {
|
||
"get": {
|
||
"description": "List tenant users",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Tenant"
|
||
],
|
||
"summary": "List tenant users",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "tenantID",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page size",
|
||
"name": "limit",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.SuperTenantUserItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/users": {
|
||
"get": {
|
||
"description": "List users",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"User"
|
||
],
|
||
"summary": "List users",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page size",
|
||
"name": "limit",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Username",
|
||
"name": "username",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.UserItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/users/statistics": {
|
||
"get": {
|
||
"description": "User statistics",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"User"
|
||
],
|
||
"summary": "User statistics",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.UserStatistics"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/users/statuses": {
|
||
"get": {
|
||
"description": "User statuses",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"User"
|
||
],
|
||
"summary": "User statuses",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/requests.KV"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/users/{id}": {
|
||
"get": {
|
||
"description": "Get user",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"User"
|
||
],
|
||
"summary": "Get user",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "User ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UserItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/users/{id}/roles": {
|
||
"patch": {
|
||
"description": "Update user roles",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"User"
|
||
],
|
||
"summary": "Update user roles",
|
||
"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.UserRolesUpdateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Updated",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/users/{id}/status": {
|
||
"patch": {
|
||
"description": "Update user status",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"User"
|
||
],
|
||
"summary": "Update user status",
|
||
"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.UserStatusUpdateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Updated",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/super/v1/users/{id}/tenants": {
|
||
"get": {
|
||
"description": "List tenants joined by user",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"User"
|
||
],
|
||
"summary": "List user tenants",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "User ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page size",
|
||
"name": "limit",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.UserTenantItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/auth/login": {
|
||
"post": {
|
||
"description": "Login or register user using phone number and OTP",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Auth"
|
||
],
|
||
"summary": "Login or Register with OTP",
|
||
"parameters": [
|
||
{
|
||
"description": "Login form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/quyun_v2_app_http_v1_dto.LoginForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/quyun_v2_app_http_v1_dto.LoginResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/auth/otp": {
|
||
"post": {
|
||
"description": "Send OTP to phone number",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Auth"
|
||
],
|
||
"summary": "Send OTP",
|
||
"parameters": [
|
||
{
|
||
"description": "Phone number",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/quyun_v2_app_http_v1_dto.SendOTPForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OTP sent",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/comments/{id}/like": {
|
||
"post": {
|
||
"description": "Like a comment",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Like comment",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Comment ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Liked",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/common/options": {
|
||
"get": {
|
||
"description": "Get global options (enums)",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Common"
|
||
],
|
||
"summary": "Get options",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.OptionsResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/contents": {
|
||
"get": {
|
||
"description": "List contents with filtering and pagination",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "List contents",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Search keyword",
|
||
"name": "keyword",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Genre",
|
||
"name": "genre",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Filter by creator",
|
||
"name": "tenant_id",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"enum": [
|
||
"latest",
|
||
"hot",
|
||
"price_asc"
|
||
],
|
||
"type": "string",
|
||
"description": "Sort order",
|
||
"name": "sort",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.ContentItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/contents/{id}": {
|
||
"get": {
|
||
"description": "Get content detail by ID",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Get content detail",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.ContentDetail"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/contents/{id}/comments": {
|
||
"get": {
|
||
"description": "Get comments for a content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Get comments",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.Comment"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"description": "Post a comment to a content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Post comment",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Comment form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.CommentCreateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Comment created",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/contents/{id}/favorite": {
|
||
"post": {
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Add favorite",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Favorited",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Remove favorite",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Unfavorited",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/contents/{id}/like": {
|
||
"post": {
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Add like",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Liked",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "Remove like",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Unliked",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/apply": {
|
||
"post": {
|
||
"description": "Apply to become a creator",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Apply creator",
|
||
"parameters": [
|
||
{
|
||
"description": "Apply form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.ApplyForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Application submitted",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/contents": {
|
||
"get": {
|
||
"description": "List creator contents",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "List contents",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Status",
|
||
"name": "status",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Genre",
|
||
"name": "genre",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Keyword",
|
||
"name": "keyword",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.ContentItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"description": "Create/Publish content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Create content",
|
||
"parameters": [
|
||
{
|
||
"description": "Content form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.ContentCreateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Created",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/contents/{id}": {
|
||
"get": {
|
||
"description": "Get content details for edit",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Get content",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.ContentEditDTO"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"description": "Update content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Update content",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Update form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.ContentUpdateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Updated",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"description": "Delete content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Delete content",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Deleted",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/coupons": {
|
||
"get": {
|
||
"description": "List coupon templates",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "List coupons",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"description": "Page",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Limit",
|
||
"name": "limit",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Type (fix_amount/discount)",
|
||
"name": "type",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Status (active/expired)",
|
||
"name": "status",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Keyword",
|
||
"name": "keyword",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/requests.Pager"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"description": "Create coupon template",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Create coupon",
|
||
"parameters": [
|
||
{
|
||
"description": "Coupon form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.CouponCreateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.CouponItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/coupons/{id}": {
|
||
"get": {
|
||
"description": "Get coupon template detail",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Get coupon",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Coupon ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.CouponItem"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"description": "Update coupon template",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Update coupon",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Coupon ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Coupon form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.CouponUpdateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.CouponItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/coupons/{id}/grant": {
|
||
"post": {
|
||
"description": "Grant coupon to users",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Grant coupon",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Coupon ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Grant form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.CouponGrantForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Granted",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/dashboard": {
|
||
"get": {
|
||
"description": "Get creator dashboard stats",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Dashboard stats",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.DashboardStats"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/members/invite": {
|
||
"post": {
|
||
"description": "Create an invite for tenant members",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Create member invite",
|
||
"parameters": [
|
||
{
|
||
"description": "Invite form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantInviteCreateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantInviteItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/members/{id}/review": {
|
||
"post": {
|
||
"description": "Approve or reject a tenant join request",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Review join request",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Join request ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Review form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantJoinReviewForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Reviewed",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/orders": {
|
||
"get": {
|
||
"description": "List sales orders",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "List sales orders",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Status",
|
||
"name": "status",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Keyword",
|
||
"name": "keyword",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.Order"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/orders/{id}/refund": {
|
||
"post": {
|
||
"description": "Process refund",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Process refund",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Order ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Refund form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.RefundForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Processed",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/payout-accounts": {
|
||
"get": {
|
||
"description": "List payout accounts",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "List payout accounts",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.PayoutAccount"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"description": "Add payout account",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Add payout account",
|
||
"parameters": [
|
||
{
|
||
"description": "Account form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.PayoutAccount"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Added",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"description": "Remove payout account",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Remove payout account",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Account ID",
|
||
"name": "id",
|
||
"in": "query",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Removed",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/reports/export": {
|
||
"post": {
|
||
"description": "Export creator report overview",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Export report overview",
|
||
"parameters": [
|
||
{
|
||
"description": "Export form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.ReportExportForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.ReportExportResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/reports/overview": {
|
||
"get": {
|
||
"description": "Get creator report overview",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Report overview",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Start time (RFC3339)",
|
||
"name": "start_at",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "End time (RFC3339)",
|
||
"name": "end_at",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Granularity (day)",
|
||
"name": "granularity",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.ReportOverviewResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/settings": {
|
||
"get": {
|
||
"description": "Get channel settings",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Get settings",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.Settings"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"description": "Update channel settings",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Update settings",
|
||
"parameters": [
|
||
{
|
||
"description": "Settings form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.Settings"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Updated",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creator/withdraw": {
|
||
"post": {
|
||
"description": "Request withdrawal",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"CreatorCenter"
|
||
],
|
||
"summary": "Request withdrawal",
|
||
"parameters": [
|
||
{
|
||
"description": "Withdraw form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.WithdrawForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Withdrawal requested",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/creators/{id}/contents": {
|
||
"get": {
|
||
"description": "List contents of a specific creator",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"TenantPublic"
|
||
],
|
||
"summary": "List creator contents",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Creator User ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Limit",
|
||
"name": "limit",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/requests.Pager"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me": {
|
||
"get": {
|
||
"description": "Get current user profile",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Get user profile",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/quyun_v2_app_http_v1_dto.User"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"description": "Update user profile",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Update user profile",
|
||
"parameters": [
|
||
{
|
||
"description": "Update form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UserUpdate"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Updated",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/coupons": {
|
||
"get": {
|
||
"description": "List my coupons",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "List coupons",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Status (unused, used, expired)",
|
||
"name": "status",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.UserCouponItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/coupons/available": {
|
||
"get": {
|
||
"description": "List coupons available for the given order amount",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "List available coupons",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Order amount (cents)",
|
||
"name": "amount",
|
||
"in": "query",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.UserCouponItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/coupons/receive": {
|
||
"post": {
|
||
"description": "Receive a coupon by coupon_id",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Receive coupon",
|
||
"parameters": [
|
||
{
|
||
"description": "Receive form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.CouponReceiveForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UserCouponItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/favorites": {
|
||
"get": {
|
||
"description": "Get favorites",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Get favorites",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.ContentItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"description": "Add to favorites",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Add favorite",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "contentId",
|
||
"in": "query",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Added",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/favorites/{contentId}": {
|
||
"delete": {
|
||
"description": "Remove from favorites",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Remove favorite",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "contentId",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Removed",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/following": {
|
||
"get": {
|
||
"description": "Get following tenants",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Get following",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.TenantProfile"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/library": {
|
||
"get": {
|
||
"description": "Get purchased content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Get library",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.ContentItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/likes": {
|
||
"get": {
|
||
"description": "Get liked contents",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Get likes",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.ContentItem"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"description": "Like content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Like content",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "contentId",
|
||
"in": "query",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Liked",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/likes/{contentId}": {
|
||
"delete": {
|
||
"description": "Unlike content",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Unlike content",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Content ID",
|
||
"name": "contentId",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Unliked",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/notifications": {
|
||
"get": {
|
||
"description": "Get notifications",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Get notifications",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Type enum(all, system, order, audit, interaction)",
|
||
"name": "type",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page number",
|
||
"name": "page",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/requests.Pager"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.Notification"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/notifications/read-all": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Mark all as read",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/notifications/{id}/read": {
|
||
"post": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Mark as read",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Notification ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/orders": {
|
||
"get": {
|
||
"description": "List user orders",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "List orders",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Status enum(all, unpaid, completed, refund)",
|
||
"name": "status",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.Order"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/orders/{id}": {
|
||
"get": {
|
||
"description": "Get user order detail",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Get order detail",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Order ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.Order"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/realname": {
|
||
"post": {
|
||
"description": "Submit real-name authentication",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Realname auth",
|
||
"parameters": [
|
||
{
|
||
"description": "Realname form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.RealNameForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Submitted",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/wallet": {
|
||
"get": {
|
||
"description": "Get wallet balance and transactions",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Get wallet",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.WalletResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/me/wallet/recharge": {
|
||
"post": {
|
||
"description": "Recharge wallet",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"UserCenter"
|
||
],
|
||
"summary": "Recharge wallet",
|
||
"parameters": [
|
||
{
|
||
"description": "Recharge form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.RechargeForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.RechargeResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/media-assets/{id}": {
|
||
"delete": {
|
||
"description": "Delete media asset",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Common"
|
||
],
|
||
"summary": "Delete media asset",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Asset ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/orders": {
|
||
"post": {
|
||
"description": "Create Order",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Transaction"
|
||
],
|
||
"summary": "Create Order",
|
||
"parameters": [
|
||
{
|
||
"description": "Create form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.OrderCreateForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.OrderCreateResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/orders/{id}/pay": {
|
||
"post": {
|
||
"description": "Pay for order",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Transaction"
|
||
],
|
||
"summary": "Pay for order",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Order ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Pay form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.OrderPayForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.OrderPayResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/orders/{id}/status": {
|
||
"get": {
|
||
"description": "Check order payment status",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Transaction"
|
||
],
|
||
"summary": "Check order status",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Order ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.OrderStatusResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/storage/{any}": {
|
||
"get": {
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/octet-stream"
|
||
],
|
||
"tags": [
|
||
"Storage"
|
||
],
|
||
"summary": "Download file",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "any path",
|
||
"name": "any",
|
||
"in": "path"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Expiry",
|
||
"name": "expires",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Signature",
|
||
"name": "sign",
|
||
"in": "query",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "file"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"put": {
|
||
"consumes": [
|
||
"application/octet-stream"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Storage"
|
||
],
|
||
"summary": "Upload file",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "any path",
|
||
"name": "any",
|
||
"in": "path"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Expiry",
|
||
"name": "expires",
|
||
"in": "query",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Signature",
|
||
"name": "sign",
|
||
"in": "query",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "success",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/tenants": {
|
||
"get": {
|
||
"description": "Search tenants",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"TenantPublic"
|
||
],
|
||
"summary": "List tenants",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Keyword",
|
||
"name": "keyword",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Page",
|
||
"name": "page",
|
||
"in": "query"
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "Limit",
|
||
"name": "limit",
|
||
"in": "query"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/requests.Pager"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/tenants/{id}": {
|
||
"get": {
|
||
"description": "Get tenant public profile",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"TenantPublic"
|
||
],
|
||
"summary": "Get tenant profile",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantProfile"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/tenants/{id}/follow": {
|
||
"post": {
|
||
"description": "Follow a tenant",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"TenantPublic"
|
||
],
|
||
"summary": "Follow tenant",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Followed",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"description": "Unfollow a tenant",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"TenantPublic"
|
||
],
|
||
"summary": "Unfollow tenant",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Unfollowed",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/tenants/{id}/invites/accept": {
|
||
"post": {
|
||
"description": "Accept a tenant invite by code",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"TenantPublic"
|
||
],
|
||
"summary": "Accept tenant invite",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Invite form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantInviteAcceptForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Accepted",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/tenants/{id}/join": {
|
||
"post": {
|
||
"description": "Submit join request for a tenant",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"TenantPublic"
|
||
],
|
||
"summary": "Apply to join tenant",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
},
|
||
{
|
||
"description": "Join form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.TenantJoinApplyForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Applied",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"delete": {
|
||
"description": "Cancel join request for a tenant",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"TenantPublic"
|
||
],
|
||
"summary": "Cancel join request",
|
||
"parameters": [
|
||
{
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Tenant ID",
|
||
"name": "id",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Canceled",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/topics": {
|
||
"get": {
|
||
"description": "List curated topics",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Content"
|
||
],
|
||
"summary": "List topics",
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.Topic"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/upload": {
|
||
"post": {
|
||
"description": "Upload file",
|
||
"consumes": [
|
||
"multipart/form-data"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Common"
|
||
],
|
||
"summary": "Upload file",
|
||
"parameters": [
|
||
{
|
||
"type": "file",
|
||
"description": "File",
|
||
"name": "file",
|
||
"in": "formData",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "Type 上传资源类型(如 cover/media/avatar)。",
|
||
"name": "type",
|
||
"in": "formData"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UploadResult"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/upload/check": {
|
||
"get": {
|
||
"description": "Check if file hash exists",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Common"
|
||
],
|
||
"summary": "Check hash",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "File MD5 Hash",
|
||
"name": "hash",
|
||
"in": "query",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UploadResult"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/upload/complete": {
|
||
"post": {
|
||
"description": "Complete multipart upload",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Common"
|
||
],
|
||
"summary": "Complete upload",
|
||
"parameters": [
|
||
{
|
||
"description": "Complete form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UploadCompleteForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UploadResult"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/upload/init": {
|
||
"post": {
|
||
"description": "Initialize multipart upload",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Common"
|
||
],
|
||
"summary": "Init multipart upload",
|
||
"parameters": [
|
||
{
|
||
"description": "Init form",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UploadInitForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"$ref": "#/definitions/dto.UploadInitResponse"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/upload/part": {
|
||
"post": {
|
||
"description": "Upload a part",
|
||
"consumes": [
|
||
"multipart/form-data"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Common"
|
||
],
|
||
"summary": "Upload part",
|
||
"parameters": [
|
||
{
|
||
"type": "file",
|
||
"description": "Part File",
|
||
"name": "file",
|
||
"in": "formData",
|
||
"required": true
|
||
},
|
||
{
|
||
"type": "integer",
|
||
"description": "PartNumber 分片序号(从 1 开始)。",
|
||
"name": "part_number",
|
||
"in": "formData"
|
||
},
|
||
{
|
||
"type": "string",
|
||
"description": "UploadID 分片上传ID。",
|
||
"name": "upload_id",
|
||
"in": "formData"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/upload/{uploadId}": {
|
||
"delete": {
|
||
"description": "Abort multipart upload",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Common"
|
||
],
|
||
"summary": "Abort upload",
|
||
"parameters": [
|
||
{
|
||
"type": "string",
|
||
"description": "Upload ID",
|
||
"name": "uploadId",
|
||
"in": "path",
|
||
"required": true
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/t/{tenantCode}/v1/webhook/payment/notify": {
|
||
"post": {
|
||
"description": "Payment Webhook",
|
||
"consumes": [
|
||
"application/json"
|
||
],
|
||
"produces": [
|
||
"application/json"
|
||
],
|
||
"tags": [
|
||
"Transaction"
|
||
],
|
||
"summary": "Payment Webhook",
|
||
"parameters": [
|
||
{
|
||
"description": "Webhook Data",
|
||
"name": "form",
|
||
"in": "body",
|
||
"required": true,
|
||
"schema": {
|
||
"$ref": "#/definitions/v1.WebhookForm"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "success",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"definitions": {
|
||
"consts.ContentStatus": {
|
||
"type": "string",
|
||
"enum": [
|
||
"draft",
|
||
"reviewing",
|
||
"published",
|
||
"unpublished",
|
||
"blocked"
|
||
],
|
||
"x-enum-varnames": [
|
||
"ContentStatusDraft",
|
||
"ContentStatusReviewing",
|
||
"ContentStatusPublished",
|
||
"ContentStatusUnpublished",
|
||
"ContentStatusBlocked"
|
||
]
|
||
},
|
||
"consts.Currency": {
|
||
"type": "string",
|
||
"enum": [
|
||
"CNY"
|
||
],
|
||
"x-enum-varnames": [
|
||
"CurrencyCNY"
|
||
]
|
||
},
|
||
"consts.Gender": {
|
||
"type": "string",
|
||
"enum": [
|
||
"male",
|
||
"female",
|
||
"secret"
|
||
],
|
||
"x-enum-varnames": [
|
||
"GenderMale",
|
||
"GenderFemale",
|
||
"GenderSecret"
|
||
]
|
||
},
|
||
"consts.OrderStatus": {
|
||
"type": "string",
|
||
"enum": [
|
||
"created",
|
||
"paid",
|
||
"refunding",
|
||
"refunded",
|
||
"canceled",
|
||
"failed"
|
||
],
|
||
"x-enum-varnames": [
|
||
"OrderStatusCreated",
|
||
"OrderStatusPaid",
|
||
"OrderStatusRefunding",
|
||
"OrderStatusRefunded",
|
||
"OrderStatusCanceled",
|
||
"OrderStatusFailed"
|
||
]
|
||
},
|
||
"consts.OrderType": {
|
||
"type": "string",
|
||
"enum": [
|
||
"content_purchase",
|
||
"recharge",
|
||
"withdrawal"
|
||
],
|
||
"x-enum-varnames": [
|
||
"OrderTypeContentPurchase",
|
||
"OrderTypeRecharge",
|
||
"OrderTypeWithdrawal"
|
||
]
|
||
},
|
||
"consts.Role": {
|
||
"type": "string",
|
||
"enum": [
|
||
"user",
|
||
"super_admin",
|
||
"creator"
|
||
],
|
||
"x-enum-varnames": [
|
||
"RoleUser",
|
||
"RoleSuperAdmin",
|
||
"RoleCreator"
|
||
]
|
||
},
|
||
"consts.TenantStatus": {
|
||
"type": "string",
|
||
"enum": [
|
||
"pending_verify",
|
||
"verified",
|
||
"banned"
|
||
],
|
||
"x-enum-varnames": [
|
||
"TenantStatusPendingVerify",
|
||
"TenantStatusVerified",
|
||
"TenantStatusBanned"
|
||
]
|
||
},
|
||
"consts.TenantUserRole": {
|
||
"type": "string",
|
||
"enum": [
|
||
"member",
|
||
"tenant_admin"
|
||
],
|
||
"x-enum-varnames": [
|
||
"TenantUserRoleMember",
|
||
"TenantUserRoleTenantAdmin"
|
||
]
|
||
},
|
||
"consts.UserStatus": {
|
||
"type": "string",
|
||
"enum": [
|
||
"active",
|
||
"inactive",
|
||
"pending_verify",
|
||
"verified",
|
||
"banned"
|
||
],
|
||
"x-enum-varnames": [
|
||
"UserStatusActive",
|
||
"UserStatusInactive",
|
||
"UserStatusPendingVerify",
|
||
"UserStatusVerified",
|
||
"UserStatusBanned"
|
||
]
|
||
},
|
||
"dto.AdminContentItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"content": {
|
||
"description": "Content 内容摘要信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.ContentItem"
|
||
}
|
||
]
|
||
},
|
||
"owner": {
|
||
"description": "Owner 内容作者用户信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.AdminContentOwnerLite"
|
||
}
|
||
]
|
||
},
|
||
"price": {
|
||
"description": "Price 内容价格信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.ContentPrice"
|
||
}
|
||
]
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 状态描述(用于展示)。",
|
||
"type": "string"
|
||
},
|
||
"tenant": {
|
||
"description": "Tenant 内容所属租户信息,用于超管列表展示与跳转。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.SuperContentTenantLite"
|
||
}
|
||
]
|
||
},
|
||
"visibility_description": {
|
||
"description": "VisibilityDescription 可见性描述(用于展示)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.AdminContentOwnerLite": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"description": "ID 用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"roles": {
|
||
"description": "Roles 用户角色列表。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/consts.Role"
|
||
}
|
||
},
|
||
"status": {
|
||
"description": "Status 用户状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.UserStatus"
|
||
}
|
||
]
|
||
},
|
||
"username": {
|
||
"description": "Username 用户名。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.ApplyForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"avatar": {
|
||
"description": "Avatar 头像URL。",
|
||
"type": "string"
|
||
},
|
||
"bio": {
|
||
"description": "Bio 频道简介。",
|
||
"type": "string"
|
||
},
|
||
"name": {
|
||
"description": "Name 频道/创作者名称。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.AssetDTO": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"description": "ID 资源ID。",
|
||
"type": "integer"
|
||
},
|
||
"name": {
|
||
"description": "Name 文件名。",
|
||
"type": "string"
|
||
},
|
||
"role": {
|
||
"description": "Role 资源角色(cover/media/preview)。",
|
||
"type": "string"
|
||
},
|
||
"size": {
|
||
"description": "Size 文件大小描述。",
|
||
"type": "string"
|
||
},
|
||
"sort": {
|
||
"description": "Sort 排序权重。",
|
||
"type": "integer"
|
||
},
|
||
"type": {
|
||
"description": "Type 资源类型(image/audio/video)。",
|
||
"type": "string"
|
||
},
|
||
"url": {
|
||
"description": "URL 资源访问地址。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.Comment": {
|
||
"type": "object",
|
||
"properties": {
|
||
"content": {
|
||
"description": "Content 评论内容。",
|
||
"type": "string"
|
||
},
|
||
"create_time": {
|
||
"description": "CreateTime 评论创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 评论ID。",
|
||
"type": "integer"
|
||
},
|
||
"is_liked": {
|
||
"description": "IsLiked 当前用户是否点赞该评论。",
|
||
"type": "boolean"
|
||
},
|
||
"likes": {
|
||
"description": "Likes 评论点赞数。",
|
||
"type": "integer"
|
||
},
|
||
"reply_to": {
|
||
"description": "ReplyTo 回复的评论ID(0 表示一级评论)。",
|
||
"type": "integer"
|
||
},
|
||
"user_avatar": {
|
||
"description": "UserAvatar 评论用户头像。",
|
||
"type": "string"
|
||
},
|
||
"user_id": {
|
||
"description": "UserID 评论用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"user_nickname": {
|
||
"description": "UserNickname 评论用户昵称。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.CommentCreateForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"content": {
|
||
"description": "Content 评论正文,不能为空。",
|
||
"type": "string"
|
||
},
|
||
"reply_to": {
|
||
"description": "ReplyTo 被回复评论ID(0 表示一级评论)。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.ContentCreateForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"cover_ids": {
|
||
"description": "CoverIDs 封面资源ID集合。",
|
||
"type": "array",
|
||
"items": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"genre": {
|
||
"description": "Genre 内容分类/风格。",
|
||
"type": "string"
|
||
},
|
||
"key": {
|
||
"description": "Key 音乐调性或主音。",
|
||
"type": "string"
|
||
},
|
||
"media_ids": {
|
||
"description": "MediaIDs 媒体资源ID集合(音频/视频/图片)。",
|
||
"type": "array",
|
||
"items": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"price": {
|
||
"description": "Price 价格(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"status": {
|
||
"description": "Status 内容状态(draft/published)。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 内容标题。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.ContentDetail": {
|
||
"type": "object",
|
||
"properties": {
|
||
"author_avatar": {
|
||
"description": "AuthorAvatar 作者头像URL。",
|
||
"type": "string"
|
||
},
|
||
"author_id": {
|
||
"description": "AuthorID 作者用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"author_is_following": {
|
||
"description": "AuthorIsFollowing 当前用户是否关注作者(未登录默认 false)。",
|
||
"type": "boolean"
|
||
},
|
||
"author_name": {
|
||
"description": "AuthorName 作者展示名(优先昵称)。",
|
||
"type": "string"
|
||
},
|
||
"body": {
|
||
"description": "Body 详细正文/图文内容(文章类可为空)。",
|
||
"type": "string"
|
||
},
|
||
"cover": {
|
||
"description": "Cover 封面URL(无封面时为空)。",
|
||
"type": "string"
|
||
},
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339 格式)。",
|
||
"type": "string"
|
||
},
|
||
"description": {
|
||
"description": "Description 内容描述(用于详情页摘要)。",
|
||
"type": "string"
|
||
},
|
||
"genre": {
|
||
"description": "Genre 内容分类/风格标签。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 内容唯一ID。",
|
||
"type": "integer"
|
||
},
|
||
"is_favorited": {
|
||
"description": "IsFavorited 当前用户是否收藏。",
|
||
"type": "boolean"
|
||
},
|
||
"is_liked": {
|
||
"description": "IsLiked 当前用户是否点赞。",
|
||
"type": "boolean"
|
||
},
|
||
"is_purchased": {
|
||
"description": "IsPurchased 是否已购买(用于内容列表快速判断)。",
|
||
"type": "boolean"
|
||
},
|
||
"likes": {
|
||
"description": "Likes 点赞数统计。",
|
||
"type": "integer"
|
||
},
|
||
"media_urls": {
|
||
"description": "MediaUrls 关联媒体资源(音频/视频/预览)。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.MediaURL"
|
||
}
|
||
},
|
||
"meta": {
|
||
"description": "Meta 内容元信息(曲风/调性/节拍等)。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.Meta"
|
||
}
|
||
]
|
||
},
|
||
"price": {
|
||
"description": "Price 价格(单位元,免费为 0)。",
|
||
"type": "number"
|
||
},
|
||
"published_at": {
|
||
"description": "PublishedAt 发布时间,未发布为空。",
|
||
"type": "string"
|
||
},
|
||
"status": {
|
||
"description": "Status 内容状态(如 published/unpublished)。",
|
||
"type": "string"
|
||
},
|
||
"tenant_id": {
|
||
"description": "TenantID 内容所属租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"title": {
|
||
"description": "Title 内容标题。",
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"description": "Type 内容媒体类型(video/audio/article)。",
|
||
"type": "string"
|
||
},
|
||
"user_id": {
|
||
"description": "UserID 内容作者用户ID(与 author_id 同义,便于后台展示)。",
|
||
"type": "integer"
|
||
},
|
||
"views": {
|
||
"description": "Views 浏览量统计。",
|
||
"type": "integer"
|
||
},
|
||
"visibility": {
|
||
"description": "Visibility 内容可见性(如 public/tenant_only/private)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.ContentEditDTO": {
|
||
"type": "object",
|
||
"properties": {
|
||
"assets": {
|
||
"description": "Assets 资源列表(封面/媒体)。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.AssetDTO"
|
||
}
|
||
},
|
||
"description": {
|
||
"description": "Description 内容简介。",
|
||
"type": "string"
|
||
},
|
||
"enable_trial": {
|
||
"description": "EnableTrial 是否开启试读/试听。",
|
||
"type": "boolean"
|
||
},
|
||
"genre": {
|
||
"description": "Genre 内容分类。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 内容ID。",
|
||
"type": "integer"
|
||
},
|
||
"key": {
|
||
"description": "Key 音乐调性或主音。",
|
||
"type": "string"
|
||
},
|
||
"preview_seconds": {
|
||
"description": "PreviewSeconds 试看/试听秒数。",
|
||
"type": "integer"
|
||
},
|
||
"price": {
|
||
"description": "Price 价格(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"status": {
|
||
"description": "Status 内容状态。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 内容标题。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.ContentItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"author_avatar": {
|
||
"description": "AuthorAvatar 作者头像URL。",
|
||
"type": "string"
|
||
},
|
||
"author_id": {
|
||
"description": "AuthorID 作者用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"author_is_following": {
|
||
"description": "AuthorIsFollowing 当前用户是否关注作者(未登录默认 false)。",
|
||
"type": "boolean"
|
||
},
|
||
"author_name": {
|
||
"description": "AuthorName 作者展示名(优先昵称)。",
|
||
"type": "string"
|
||
},
|
||
"cover": {
|
||
"description": "Cover 封面URL(无封面时为空)。",
|
||
"type": "string"
|
||
},
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339 格式)。",
|
||
"type": "string"
|
||
},
|
||
"genre": {
|
||
"description": "Genre 内容分类/风格标签。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 内容唯一ID。",
|
||
"type": "integer"
|
||
},
|
||
"is_purchased": {
|
||
"description": "IsPurchased 是否已购买(用于内容列表快速判断)。",
|
||
"type": "boolean"
|
||
},
|
||
"likes": {
|
||
"description": "Likes 点赞数统计。",
|
||
"type": "integer"
|
||
},
|
||
"price": {
|
||
"description": "Price 价格(单位元,免费为 0)。",
|
||
"type": "number"
|
||
},
|
||
"published_at": {
|
||
"description": "PublishedAt 发布时间,未发布为空。",
|
||
"type": "string"
|
||
},
|
||
"status": {
|
||
"description": "Status 内容状态(如 published/unpublished)。",
|
||
"type": "string"
|
||
},
|
||
"tenant_id": {
|
||
"description": "TenantID 内容所属租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"title": {
|
||
"description": "Title 内容标题。",
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"description": "Type 内容媒体类型(video/audio/article)。",
|
||
"type": "string"
|
||
},
|
||
"user_id": {
|
||
"description": "UserID 内容作者用户ID(与 author_id 同义,便于后台展示)。",
|
||
"type": "integer"
|
||
},
|
||
"views": {
|
||
"description": "Views 浏览量统计。",
|
||
"type": "integer"
|
||
},
|
||
"visibility": {
|
||
"description": "Visibility 内容可见性(如 public/tenant_only/private)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.ContentPrice": {
|
||
"type": "object",
|
||
"properties": {
|
||
"currency": {
|
||
"description": "Currency 币种(CNY 等)。",
|
||
"type": "string"
|
||
},
|
||
"discount_end_at": {
|
||
"description": "DiscountEndAt 折扣结束时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"discount_start_at": {
|
||
"description": "DiscountStartAt 折扣开始时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"discount_type": {
|
||
"description": "DiscountType 折扣类型(amount/percent)。",
|
||
"type": "string"
|
||
},
|
||
"discount_value": {
|
||
"description": "DiscountValue 折扣值(amount=元,percent=百分比)。",
|
||
"type": "number"
|
||
},
|
||
"price_amount": {
|
||
"description": "PriceAmount 原价金额(单位元)。",
|
||
"type": "number"
|
||
}
|
||
}
|
||
},
|
||
"dto.ContentUpdateForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"cover_ids": {
|
||
"description": "CoverIDs 封面资源ID集合。",
|
||
"type": "array",
|
||
"items": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"genre": {
|
||
"description": "Genre 内容分类/风格。",
|
||
"type": "string"
|
||
},
|
||
"is_pinned": {
|
||
"description": "IsPinned 是否置顶。",
|
||
"type": "boolean"
|
||
},
|
||
"key": {
|
||
"description": "Key 音乐调性或主音。",
|
||
"type": "string"
|
||
},
|
||
"media_ids": {
|
||
"description": "MediaIDs 媒体资源ID集合。",
|
||
"type": "array",
|
||
"items": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"price": {
|
||
"description": "Price 价格(单位元,nil 表示不修改)。",
|
||
"type": "number"
|
||
},
|
||
"status": {
|
||
"description": "Status 内容状态(draft/published)。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 内容标题(为空表示不修改)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.CouponCreateForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"description": {
|
||
"description": "Description 优惠券描述。",
|
||
"type": "string"
|
||
},
|
||
"end_at": {
|
||
"description": "EndAt 过期时间(RFC3339,可为空)。",
|
||
"type": "string"
|
||
},
|
||
"max_discount": {
|
||
"description": "MaxDiscount 折扣券最高抵扣金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"min_order_amount": {
|
||
"description": "MinOrderAmount 使用门槛金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"start_at": {
|
||
"description": "StartAt 生效时间(RFC3339,可为空)。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 优惠券标题。",
|
||
"type": "string"
|
||
},
|
||
"total_quantity": {
|
||
"description": "TotalQuantity 发行总量(0 表示不限量)。",
|
||
"type": "integer"
|
||
},
|
||
"type": {
|
||
"description": "Type 优惠券类型(fix_amount/discount)。",
|
||
"type": "string"
|
||
},
|
||
"value": {
|
||
"description": "Value 优惠券面值(分/折扣百分比)。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.CouponGrantForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"user_ids": {
|
||
"description": "UserIDs 领取用户ID集合。",
|
||
"type": "array",
|
||
"items": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"dto.CouponItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"description": {
|
||
"description": "Description 优惠券描述。",
|
||
"type": "string"
|
||
},
|
||
"end_at": {
|
||
"description": "EndAt 过期时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 券模板ID。",
|
||
"type": "integer"
|
||
},
|
||
"max_discount": {
|
||
"description": "MaxDiscount 折扣券最高抵扣金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"min_order_amount": {
|
||
"description": "MinOrderAmount 使用门槛金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"start_at": {
|
||
"description": "StartAt 生效时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 优惠券标题。",
|
||
"type": "string"
|
||
},
|
||
"total_quantity": {
|
||
"description": "TotalQuantity 发行总量。",
|
||
"type": "integer"
|
||
},
|
||
"type": {
|
||
"description": "Type 优惠券类型(fix_amount/discount)。",
|
||
"type": "string"
|
||
},
|
||
"updated_at": {
|
||
"description": "UpdatedAt 更新时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"used_quantity": {
|
||
"description": "UsedQuantity 已使用数量。",
|
||
"type": "integer"
|
||
},
|
||
"value": {
|
||
"description": "Value 优惠券面值(分/折扣百分比)。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.CouponReceiveForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"coupon_id": {
|
||
"description": "CouponID 券模板ID。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.CouponUpdateForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"description": {
|
||
"description": "Description 优惠券描述(为空表示不修改)。",
|
||
"type": "string"
|
||
},
|
||
"end_at": {
|
||
"description": "EndAt 过期时间(RFC3339,可为空)。",
|
||
"type": "string"
|
||
},
|
||
"max_discount": {
|
||
"description": "MaxDiscount 折扣券最高抵扣金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"min_order_amount": {
|
||
"description": "MinOrderAmount 使用门槛金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"start_at": {
|
||
"description": "StartAt 生效时间(RFC3339,可为空)。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 优惠券标题(为空表示不修改)。",
|
||
"type": "string"
|
||
},
|
||
"total_quantity": {
|
||
"description": "TotalQuantity 发行总量(0 表示不限量)。",
|
||
"type": "integer"
|
||
},
|
||
"type": {
|
||
"description": "Type 优惠券类型(fix_amount/discount)。",
|
||
"type": "string"
|
||
},
|
||
"value": {
|
||
"description": "Value 优惠券面值(分/折扣百分比)。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.DashboardStats": {
|
||
"type": "object",
|
||
"properties": {
|
||
"new_messages": {
|
||
"description": "NewMessages 新消息数量。",
|
||
"type": "integer"
|
||
},
|
||
"pending_refunds": {
|
||
"description": "PendingRefunds 待处理退款数量。",
|
||
"type": "integer"
|
||
},
|
||
"total_followers": {
|
||
"description": "TotalFollowers 粉丝总数统计。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.IntStatItem"
|
||
}
|
||
]
|
||
},
|
||
"total_revenue": {
|
||
"description": "TotalRevenue 累计收入统计(单位元)。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.FloatStatItem"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.FloatStatItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"trend": {
|
||
"description": "Trend 环比/同比变化比例。",
|
||
"type": "number"
|
||
},
|
||
"value": {
|
||
"description": "Value 统计数值(浮点)。",
|
||
"type": "number"
|
||
}
|
||
}
|
||
},
|
||
"dto.IntStatItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"trend": {
|
||
"description": "Trend 环比/同比变化比例。",
|
||
"type": "number"
|
||
},
|
||
"value": {
|
||
"description": "Value 统计数值。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.MediaURL": {
|
||
"type": "object",
|
||
"properties": {
|
||
"duration": {
|
||
"description": "Duration 媒体时长(秒),无时长则为 0。",
|
||
"type": "integer"
|
||
},
|
||
"type": {
|
||
"description": "Type 媒体类型(audio/video/image/preview)。",
|
||
"type": "string"
|
||
},
|
||
"url": {
|
||
"description": "URL 媒体资源地址。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.Meta": {
|
||
"type": "object",
|
||
"properties": {
|
||
"beat": {
|
||
"description": "Beat 节拍信息(如 4/4)。",
|
||
"type": "string"
|
||
},
|
||
"key": {
|
||
"description": "Key 音乐调性或主音。",
|
||
"type": "string"
|
||
},
|
||
"role": {
|
||
"description": "Role 内容角色/定位(如 demo/主稿)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.Notification": {
|
||
"type": "object",
|
||
"properties": {
|
||
"content": {
|
||
"description": "Content 通知内容。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 通知ID。",
|
||
"type": "integer"
|
||
},
|
||
"read": {
|
||
"description": "Read 是否已读。",
|
||
"type": "boolean"
|
||
},
|
||
"time": {
|
||
"description": "Time 发送时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 通知标题。",
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"description": "Type 通知类型(system/order/interaction)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.OptionsResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"content_genre": {
|
||
"description": "ContentGenre 内容类型/分类选项。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/requests.KV"
|
||
}
|
||
},
|
||
"content_status": {
|
||
"description": "ContentStatus 内容状态选项。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/requests.KV"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"dto.Order": {
|
||
"type": "object",
|
||
"properties": {
|
||
"amount": {
|
||
"description": "Amount 实付金额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"buyer_avatar": {
|
||
"description": "BuyerAvatar 买家头像URL。",
|
||
"type": "string"
|
||
},
|
||
"buyer_name": {
|
||
"description": "BuyerName 买家昵称。",
|
||
"type": "string"
|
||
},
|
||
"cover": {
|
||
"description": "Cover 订单封面图。",
|
||
"type": "string"
|
||
},
|
||
"create_time": {
|
||
"description": "CreateTime 创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 订单ID。",
|
||
"type": "integer"
|
||
},
|
||
"is_virtual": {
|
||
"description": "IsVirtual 是否虚拟订单。",
|
||
"type": "boolean"
|
||
},
|
||
"items": {
|
||
"description": "Items 订单内容明细。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.ContentItem"
|
||
}
|
||
},
|
||
"pay_time": {
|
||
"description": "PayTime 支付时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"quantity": {
|
||
"description": "Quantity 内容数量。",
|
||
"type": "integer"
|
||
},
|
||
"status": {
|
||
"description": "Status 订单状态。",
|
||
"type": "string"
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 订单状态描述。",
|
||
"type": "string"
|
||
},
|
||
"tenant_id": {
|
||
"description": "TenantID 内容所属租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"tenant_name": {
|
||
"description": "TenantName 租户名称。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 订单标题(用于列表展示)。",
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"description": "Type 订单类型(内容购买/充值等)。",
|
||
"type": "string"
|
||
},
|
||
"type_description": {
|
||
"description": "TypeDescription 订单类型描述。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderBuyerLite": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"description": "ID 买家用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"username": {
|
||
"description": "Username 买家用户名。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderCreateForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"content_id": {
|
||
"description": "ContentID 内容ID。",
|
||
"type": "integer"
|
||
},
|
||
"idempotency_key": {
|
||
"description": "IdempotencyKey 幂等键(同一业务请求需保持一致)。",
|
||
"type": "string"
|
||
},
|
||
"quantity": {
|
||
"description": "Quantity 购买数量(默认 1)。",
|
||
"type": "integer"
|
||
},
|
||
"sku": {
|
||
"description": "Sku 规格标识(可选)。",
|
||
"type": "string"
|
||
},
|
||
"user_coupon_id": {
|
||
"description": "UserCouponID 用户券ID(可选)。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderCreateResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"order_id": {
|
||
"description": "OrderID 创建成功的订单ID。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderPayForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"method": {
|
||
"description": "Method 支付方式(wechat/alipay/balance)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderPayResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"pay_params": {
|
||
"description": "PayParams 支付参数(透传给前端)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderStatisticsResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"by_status": {
|
||
"description": "ByStatus 按状态聚合统计。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.OrderStatisticsRow"
|
||
}
|
||
},
|
||
"total_amount_paid_sum": {
|
||
"description": "TotalAmountPaidSum 实付总额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"total_count": {
|
||
"description": "TotalCount 订单总数。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderStatisticsRow": {
|
||
"type": "object",
|
||
"properties": {
|
||
"amount_paid_sum": {
|
||
"description": "AmountPaidSum 该状态实付总额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"count": {
|
||
"description": "Count 该状态订单数量。",
|
||
"type": "integer"
|
||
},
|
||
"status": {
|
||
"description": "Status 订单状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.OrderStatus"
|
||
}
|
||
]
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 状态描述(用于展示)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderStatusResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"status": {
|
||
"description": "Status 订单状态(unpaid/paid/completed 等)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.OrderTenantLite": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"description": "Code 租户编码。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"name": {
|
||
"description": "Name 租户名称。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.PayoutAccount": {
|
||
"type": "object",
|
||
"properties": {
|
||
"account": {
|
||
"description": "Account 收款账号。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 收款账户ID。",
|
||
"type": "integer"
|
||
},
|
||
"name": {
|
||
"description": "Name 账户名称/开户行。",
|
||
"type": "string"
|
||
},
|
||
"realname": {
|
||
"description": "Realname 收款人姓名。",
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"description": "Type 账户类型(bank/alipay)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.RealNameForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id_card": {
|
||
"description": "IDCard 身份证号。",
|
||
"type": "string"
|
||
},
|
||
"realname": {
|
||
"description": "Realname 真实姓名。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.RechargeForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"amount": {
|
||
"description": "Amount 充值金额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"method": {
|
||
"description": "Method 充值方式(wechat/alipay)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.RechargeResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"order_id": {
|
||
"description": "OrderID 充值订单ID。",
|
||
"type": "integer"
|
||
},
|
||
"pay_params": {
|
||
"description": "PayParams 支付参数(透传给前端)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.RefundForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"action": {
|
||
"description": "Action 处理动作(accept/reject)。",
|
||
"type": "string"
|
||
},
|
||
"reason": {
|
||
"description": "Reason 退款原因/备注。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.ReportExportForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"end_at": {
|
||
"description": "EndAt 统计结束时间(RFC3339,可选;默认当前时间)。",
|
||
"type": "string"
|
||
},
|
||
"format": {
|
||
"description": "Format 导出格式(仅支持 csv)。",
|
||
"type": "string"
|
||
},
|
||
"granularity": {
|
||
"description": "Granularity 统计粒度(day;目前仅支持 day)。",
|
||
"type": "string"
|
||
},
|
||
"start_at": {
|
||
"description": "StartAt 统计开始时间(RFC3339,可选;默认当前时间往前 7 天)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.ReportExportResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"content": {
|
||
"description": "Content 导出内容(CSV 文本)。",
|
||
"type": "string"
|
||
},
|
||
"filename": {
|
||
"description": "Filename 导出文件名。",
|
||
"type": "string"
|
||
},
|
||
"mime_type": {
|
||
"description": "MimeType 导出内容类型。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.ReportOverviewItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"date": {
|
||
"description": "Date 日期(YYYY-MM-DD)。",
|
||
"type": "string"
|
||
},
|
||
"paid_amount": {
|
||
"description": "PaidAmount 当日已支付金额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"paid_orders": {
|
||
"description": "PaidOrders 当日已支付订单数。",
|
||
"type": "integer"
|
||
},
|
||
"refund_amount": {
|
||
"description": "RefundAmount 当日退款金额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"refund_orders": {
|
||
"description": "RefundOrders 当日退款订单数。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.ReportOverviewResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"description": "Items 按日期拆分的趋势数据。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.ReportOverviewItem"
|
||
}
|
||
},
|
||
"summary": {
|
||
"description": "Summary 汇总指标。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.ReportSummary"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.ReportSummary": {
|
||
"type": "object",
|
||
"properties": {
|
||
"conversion_rate": {
|
||
"description": "ConversionRate 转化率(已支付订单数 / 累计曝光)。",
|
||
"type": "number"
|
||
},
|
||
"paid_amount": {
|
||
"description": "PaidAmount 统计区间内已支付金额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"paid_orders": {
|
||
"description": "PaidOrders 统计区间内已支付订单数。",
|
||
"type": "integer"
|
||
},
|
||
"refund_amount": {
|
||
"description": "RefundAmount 统计区间内退款金额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"refund_orders": {
|
||
"description": "RefundOrders 统计区间内退款订单数。",
|
||
"type": "integer"
|
||
},
|
||
"total_views": {
|
||
"description": "TotalViews 内容累计曝光(全量累计值,用于粗略换算)。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.Settings": {
|
||
"type": "object",
|
||
"properties": {
|
||
"avatar": {
|
||
"description": "Avatar 头像URL。",
|
||
"type": "string"
|
||
},
|
||
"bio": {
|
||
"description": "Bio 频道简介。",
|
||
"type": "string"
|
||
},
|
||
"cover": {
|
||
"description": "Cover 封面图URL。",
|
||
"type": "string"
|
||
},
|
||
"description": {
|
||
"description": "Description 详细描述。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 租户/频道ID。",
|
||
"type": "integer"
|
||
},
|
||
"name": {
|
||
"description": "Name 频道名称。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.Stats": {
|
||
"type": "object",
|
||
"properties": {
|
||
"contents": {
|
||
"description": "Contents 内容数。",
|
||
"type": "integer"
|
||
},
|
||
"followers": {
|
||
"description": "Followers 粉丝数。",
|
||
"type": "integer"
|
||
},
|
||
"likes": {
|
||
"description": "Likes 累计点赞数。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperContentReviewForm": {
|
||
"type": "object",
|
||
"required": [
|
||
"action"
|
||
],
|
||
"properties": {
|
||
"action": {
|
||
"description": "Action 审核动作(approve/reject)。",
|
||
"type": "string",
|
||
"enum": [
|
||
"approve",
|
||
"reject"
|
||
]
|
||
},
|
||
"reason": {
|
||
"description": "Reason 审核说明(驳回时填写,便于作者修正)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperContentTenantLite": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"description": "Code 租户编码。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"name": {
|
||
"description": "Name 租户名称。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperOrderDetail": {
|
||
"type": "object",
|
||
"properties": {
|
||
"buyer": {
|
||
"description": "Buyer 订单买家信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.OrderBuyerLite"
|
||
}
|
||
]
|
||
},
|
||
"order": {
|
||
"description": "Order 订单详细信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.SuperOrderItem"
|
||
}
|
||
]
|
||
},
|
||
"tenant": {
|
||
"description": "Tenant 订单所属租户信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.OrderTenantLite"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperOrderItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"amount_discount": {
|
||
"description": "AmountDiscount 优惠金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"amount_original": {
|
||
"description": "AmountOriginal 原价金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"amount_paid": {
|
||
"description": "AmountPaid 实付金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"buyer": {
|
||
"description": "Buyer 订单买家信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.OrderBuyerLite"
|
||
}
|
||
]
|
||
},
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"currency": {
|
||
"description": "Currency 币种。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.Currency"
|
||
}
|
||
]
|
||
},
|
||
"id": {
|
||
"description": "ID 订单ID。",
|
||
"type": "integer"
|
||
},
|
||
"items": {
|
||
"description": "Items 订单明细行,用于展示具体内容与金额拆分。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.SuperOrderItemLine"
|
||
}
|
||
},
|
||
"paid_at": {
|
||
"description": "PaidAt 支付时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"refunded_at": {
|
||
"description": "RefundedAt 退款时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"snapshot": {
|
||
"description": "Snapshot 订单快照,包含下单时的关键参数与定价信息,便于审计回溯。"
|
||
},
|
||
"status": {
|
||
"description": "Status 订单状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.OrderStatus"
|
||
}
|
||
]
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 状态描述(用于展示)。",
|
||
"type": "string"
|
||
},
|
||
"tenant": {
|
||
"description": "Tenant 订单所属租户信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.OrderTenantLite"
|
||
}
|
||
]
|
||
},
|
||
"type": {
|
||
"description": "Type 订单类型。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.OrderType"
|
||
}
|
||
]
|
||
},
|
||
"updated_at": {
|
||
"description": "UpdatedAt 更新时间(RFC3339)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperOrderItemLine": {
|
||
"type": "object",
|
||
"properties": {
|
||
"amount_paid": {
|
||
"description": "AmountPaid 该明细实付金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"content_id": {
|
||
"description": "ContentID 购买的内容ID。",
|
||
"type": "integer"
|
||
},
|
||
"id": {
|
||
"description": "ID 订单明细ID。",
|
||
"type": "integer"
|
||
},
|
||
"snapshot": {
|
||
"description": "Snapshot 明细快照,用于展示内容标题等历史信息。"
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperOrderRefundForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"force": {
|
||
"description": "Force 是否强制退款(忽略部分约束)。",
|
||
"type": "boolean"
|
||
},
|
||
"idempotency_key": {
|
||
"description": "IdempotencyKey 幂等键(防止重复提交)。",
|
||
"type": "string"
|
||
},
|
||
"reason": {
|
||
"description": "Reason 退款原因说明。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperTenantContentStatusUpdateForm": {
|
||
"type": "object",
|
||
"required": [
|
||
"status"
|
||
],
|
||
"properties": {
|
||
"status": {
|
||
"description": "Status 目标内容状态。",
|
||
"enum": [
|
||
"unpublished",
|
||
"blocked"
|
||
],
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.ContentStatus"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperTenantUserItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"tenant_user": {
|
||
"description": "TenantUser 租户成员关系信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.TenantUser"
|
||
}
|
||
]
|
||
},
|
||
"user": {
|
||
"description": "User 用户信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.SuperUserLite"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.SuperUserLite": {
|
||
"type": "object",
|
||
"properties": {
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"roles": {
|
||
"description": "Roles 用户角色列表。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/consts.Role"
|
||
}
|
||
},
|
||
"status": {
|
||
"description": "Status 用户状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.UserStatus"
|
||
}
|
||
]
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 状态描述(用于展示)。",
|
||
"type": "string"
|
||
},
|
||
"updated_at": {
|
||
"description": "UpdatedAt 更新时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"username": {
|
||
"description": "Username 用户名(用于识别/展示)。",
|
||
"type": "string"
|
||
},
|
||
"verified_at": {
|
||
"description": "VerifiedAt 实名认证时间(RFC3339)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantAdminUserLite": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"description": "ID 用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"username": {
|
||
"description": "Username 用户名。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantCreateForm": {
|
||
"type": "object",
|
||
"required": [
|
||
"admin_user_id",
|
||
"code",
|
||
"duration",
|
||
"name"
|
||
],
|
||
"properties": {
|
||
"admin_user_id": {
|
||
"description": "AdminUserID 租户管理员用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"code": {
|
||
"description": "Code 租户编码(唯一)。",
|
||
"type": "string",
|
||
"maxLength": 64
|
||
},
|
||
"duration": {
|
||
"description": "Duration 租户有效期(天)。",
|
||
"type": "integer",
|
||
"enum": [
|
||
7,
|
||
30,
|
||
90,
|
||
180,
|
||
365
|
||
]
|
||
},
|
||
"name": {
|
||
"description": "Name 租户名称。",
|
||
"type": "string",
|
||
"maxLength": 128
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantExpireUpdateForm": {
|
||
"type": "object",
|
||
"required": [
|
||
"duration"
|
||
],
|
||
"properties": {
|
||
"duration": {
|
||
"description": "Duration 延长有效期(天)。",
|
||
"type": "integer",
|
||
"enum": [
|
||
7,
|
||
30,
|
||
90,
|
||
180,
|
||
365
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantHealthItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"alerts": {
|
||
"description": "Alerts 异常提示列表(用于运营侧提示)。",
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"code": {
|
||
"description": "Code 租户编码。",
|
||
"type": "string"
|
||
},
|
||
"content_count": {
|
||
"description": "ContentCount 内容总数。",
|
||
"type": "integer"
|
||
},
|
||
"health_level": {
|
||
"description": "HealthLevel 健康等级(healthy/warning/risk)。",
|
||
"type": "string"
|
||
},
|
||
"last_paid_at": {
|
||
"description": "LastPaidAt 最近成交时间(RFC3339,空代表暂无成交)。",
|
||
"type": "string"
|
||
},
|
||
"member_count": {
|
||
"description": "MemberCount 租户成员数量(包含管理员)。",
|
||
"type": "integer"
|
||
},
|
||
"name": {
|
||
"description": "Name 租户名称。",
|
||
"type": "string"
|
||
},
|
||
"owner": {
|
||
"description": "Owner 租户所有者信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.TenantOwnerUserLite"
|
||
}
|
||
]
|
||
},
|
||
"paid_amount": {
|
||
"description": "PaidAmount 已支付金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"paid_orders": {
|
||
"description": "PaidOrders 已支付订单数(内容购买)。",
|
||
"type": "integer"
|
||
},
|
||
"published_content_count": {
|
||
"description": "PublishedContentCount 已发布内容数量。",
|
||
"type": "integer"
|
||
},
|
||
"refund_amount": {
|
||
"description": "RefundAmount 已退款金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"refund_orders": {
|
||
"description": "RefundOrders 已退款订单数(内容购买)。",
|
||
"type": "integer"
|
||
},
|
||
"refund_rate": {
|
||
"description": "RefundRate 退款率(退款订单数 / 已支付订单数)。",
|
||
"type": "number"
|
||
},
|
||
"status": {
|
||
"description": "Status 租户状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.TenantStatus"
|
||
}
|
||
]
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 租户状态描述(用于展示)。",
|
||
"type": "string"
|
||
},
|
||
"tenant_id": {
|
||
"description": "TenantID 租户ID。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantInviteAcceptForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"description": "Code 邀请码(必填)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantInviteCreateForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"expires_at": {
|
||
"description": "ExpiresAt 过期时间(RFC3339,可选,空值使用默认过期时间)。",
|
||
"type": "string"
|
||
},
|
||
"max_uses": {
|
||
"description": "MaxUses 最大可使用次数(\u003c=0 默认 1)。",
|
||
"type": "integer"
|
||
},
|
||
"remark": {
|
||
"description": "Remark 备注说明(可选)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantInviteItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"description": "Code 邀请码。",
|
||
"type": "string"
|
||
},
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"expires_at": {
|
||
"description": "ExpiresAt 过期时间(RFC3339,空字符串表示不限制)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 邀请记录ID。",
|
||
"type": "integer"
|
||
},
|
||
"max_uses": {
|
||
"description": "MaxUses 最大可使用次数。",
|
||
"type": "integer"
|
||
},
|
||
"remark": {
|
||
"description": "Remark 备注说明。",
|
||
"type": "string"
|
||
},
|
||
"status": {
|
||
"description": "Status 邀请状态(active/disabled/expired)。",
|
||
"type": "string"
|
||
},
|
||
"used_count": {
|
||
"description": "UsedCount 已使用次数。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"admin_users": {
|
||
"description": "AdminUsers 租户管理员列表。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.TenantAdminUserLite"
|
||
}
|
||
},
|
||
"code": {
|
||
"description": "Code 租户编码。",
|
||
"type": "string"
|
||
},
|
||
"config": {
|
||
"description": "Config 租户配置项(占位/需要结构化时替换)。",
|
||
"type": "array",
|
||
"items": {
|
||
"type": "integer"
|
||
}
|
||
},
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"expired_at": {
|
||
"description": "ExpiredAt 租户过期时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"income_amount_paid_sum": {
|
||
"description": "IncomeAmountPaidSum 累计实收金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"name": {
|
||
"description": "Name 租户名称。",
|
||
"type": "string"
|
||
},
|
||
"owner": {
|
||
"description": "Owner 租户所有者信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.TenantOwnerUserLite"
|
||
}
|
||
]
|
||
},
|
||
"status": {
|
||
"description": "Status 租户状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.TenantStatus"
|
||
}
|
||
]
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 租户状态描述。",
|
||
"type": "string"
|
||
},
|
||
"updated_at": {
|
||
"description": "UpdatedAt 更新时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"user_count": {
|
||
"description": "UserCount 租户成员数量。",
|
||
"type": "integer"
|
||
},
|
||
"user_id": {
|
||
"description": "UserID 创建者用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"users": {
|
||
"description": "Users 租户成员列表(用于详情展示)。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.SuperUserLite"
|
||
}
|
||
},
|
||
"uuid": {
|
||
"description": "UUID 租户UUID。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantJoinApplyForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"reason": {
|
||
"description": "Reason 申请加入原因(可选,空值会使用默认文案)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantJoinReviewForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"action": {
|
||
"description": "Action 审核动作(approve/reject)。",
|
||
"type": "string"
|
||
},
|
||
"reason": {
|
||
"description": "Reason 审核说明(可选,用于展示驳回原因或备注)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantOwnerUserLite": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"description": "ID 用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"username": {
|
||
"description": "Username 用户名。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantProfile": {
|
||
"type": "object",
|
||
"properties": {
|
||
"avatar": {
|
||
"description": "Avatar 头像URL。",
|
||
"type": "string"
|
||
},
|
||
"bio": {
|
||
"description": "Bio 简短简介。",
|
||
"type": "string"
|
||
},
|
||
"cert_type": {
|
||
"description": "CertType 认证类型(personal/enterprise)。",
|
||
"type": "string"
|
||
},
|
||
"cover": {
|
||
"description": "Cover 封面图URL。",
|
||
"type": "string"
|
||
},
|
||
"description": {
|
||
"description": "Description 详细描述。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"is_following": {
|
||
"description": "IsFollowing 当前用户是否关注。",
|
||
"type": "boolean"
|
||
},
|
||
"name": {
|
||
"description": "Name 租户名称。",
|
||
"type": "string"
|
||
},
|
||
"stats": {
|
||
"description": "Stats 统计信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.Stats"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantStatusUpdateForm": {
|
||
"type": "object",
|
||
"required": [
|
||
"status"
|
||
],
|
||
"properties": {
|
||
"status": {
|
||
"description": "Status 目标租户状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.TenantStatus"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.TenantUser": {
|
||
"type": "object",
|
||
"properties": {
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 成员记录ID。",
|
||
"type": "integer"
|
||
},
|
||
"role": {
|
||
"description": "Role 成员角色列表。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/consts.TenantUserRole"
|
||
}
|
||
},
|
||
"status": {
|
||
"description": "Status 成员状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.UserStatus"
|
||
}
|
||
]
|
||
},
|
||
"tenant_id": {
|
||
"description": "TenantID 租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"updated_at": {
|
||
"description": "UpdatedAt 更新时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"user_id": {
|
||
"description": "UserID 用户ID。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.Topic": {
|
||
"type": "object",
|
||
"properties": {
|
||
"count": {
|
||
"description": "Count 专题内内容数量。",
|
||
"type": "integer"
|
||
},
|
||
"cover": {
|
||
"description": "Cover 专题封面图。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 专题ID。",
|
||
"type": "integer"
|
||
},
|
||
"tag": {
|
||
"description": "Tag 专题标签(用于筛选/展示)。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 专题标题。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.Transaction": {
|
||
"type": "object",
|
||
"properties": {
|
||
"amount": {
|
||
"description": "Amount 发生金额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"date": {
|
||
"description": "Date 发生时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 流水ID。",
|
||
"type": "integer"
|
||
},
|
||
"title": {
|
||
"description": "Title 流水标题/描述。",
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"description": "Type 流水类型(income/expense)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.UploadCompleteForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"upload_id": {
|
||
"description": "UploadID 分片上传ID。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.UploadInitForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"filename": {
|
||
"description": "Filename 原始文件名。",
|
||
"type": "string"
|
||
},
|
||
"hash": {
|
||
"description": "Hash 文件 MD5 哈希(用于秒传校验)。",
|
||
"type": "string"
|
||
},
|
||
"mime_type": {
|
||
"description": "MimeType 文件类型(如 image/png)。",
|
||
"type": "string"
|
||
},
|
||
"size": {
|
||
"description": "Size 文件大小(字节)。",
|
||
"type": "integer"
|
||
},
|
||
"type": {
|
||
"description": "Type 业务类型(如 cover/media/avatar)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.UploadInitResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"chunk_size": {
|
||
"description": "ChunkSize 分片大小(字节)。",
|
||
"type": "integer"
|
||
},
|
||
"key": {
|
||
"description": "Key 对象存储Key(S3 直传使用)。",
|
||
"type": "string"
|
||
},
|
||
"upload_id": {
|
||
"description": "UploadID 分片上传ID。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.UploadResult": {
|
||
"type": "object",
|
||
"properties": {
|
||
"filename": {
|
||
"description": "Filename 原始文件名。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 媒体资源ID。",
|
||
"type": "integer"
|
||
},
|
||
"mime_type": {
|
||
"description": "MimeType 文件类型(如 image/png)。",
|
||
"type": "string"
|
||
},
|
||
"size": {
|
||
"description": "Size 文件大小(字节)。",
|
||
"type": "integer"
|
||
},
|
||
"url": {
|
||
"description": "URL 访问地址(包含签名或公共URL)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.UserCouponItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"coupon_id": {
|
||
"description": "CouponID 券模板ID。",
|
||
"type": "integer"
|
||
},
|
||
"description": {
|
||
"description": "Description 券描述。",
|
||
"type": "string"
|
||
},
|
||
"end_at": {
|
||
"description": "EndAt 过期时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 用户券ID。",
|
||
"type": "integer"
|
||
},
|
||
"min_order_amount": {
|
||
"description": "MinOrderAmount 使用门槛金额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"start_at": {
|
||
"description": "StartAt 生效时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"status": {
|
||
"description": "Status 当前状态(可用/已用/过期)。",
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"description": "Title 券标题。",
|
||
"type": "string"
|
||
},
|
||
"type": {
|
||
"description": "Type 券类型(满减/折扣)。",
|
||
"type": "string"
|
||
},
|
||
"value": {
|
||
"description": "Value 券面值(分/百分比)。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"dto.UserItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"balance": {
|
||
"description": "Balance 账户可用余额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"balance_frozen": {
|
||
"description": "BalanceFrozen 账户冻结余额(分)。",
|
||
"type": "integer"
|
||
},
|
||
"created_at": {
|
||
"description": "CreatedAt 创建时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"id": {
|
||
"description": "ID 用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"joined_tenant_count": {
|
||
"description": "JoinedTenantCount 加入的租户数量。",
|
||
"type": "integer"
|
||
},
|
||
"owned_tenant_count": {
|
||
"description": "OwnedTenantCount 拥有的租户数量。",
|
||
"type": "integer"
|
||
},
|
||
"roles": {
|
||
"description": "Roles 用户角色列表。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/consts.Role"
|
||
}
|
||
},
|
||
"status": {
|
||
"description": "Status 用户状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.UserStatus"
|
||
}
|
||
]
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 状态描述(用于展示)。",
|
||
"type": "string"
|
||
},
|
||
"updated_at": {
|
||
"description": "UpdatedAt 更新时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"username": {
|
||
"description": "Username 用户名(用于识别/展示)。",
|
||
"type": "string"
|
||
},
|
||
"verified_at": {
|
||
"description": "VerifiedAt 实名认证时间(RFC3339)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.UserRolesUpdateForm": {
|
||
"type": "object",
|
||
"required": [
|
||
"roles"
|
||
],
|
||
"properties": {
|
||
"roles": {
|
||
"description": "Roles 目标角色列表(至少包含 1 个)。",
|
||
"type": "array",
|
||
"minItems": 1,
|
||
"items": {
|
||
"$ref": "#/definitions/consts.Role"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"dto.UserStatistics": {
|
||
"type": "object",
|
||
"properties": {
|
||
"count": {
|
||
"description": "Count 该状态用户数量。",
|
||
"type": "integer"
|
||
},
|
||
"status": {
|
||
"description": "Status 用户状态枚举。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.UserStatus"
|
||
}
|
||
]
|
||
},
|
||
"status_description": {
|
||
"description": "StatusDescription 状态描述(用于展示)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.UserStatusUpdateForm": {
|
||
"type": "object",
|
||
"required": [
|
||
"status"
|
||
],
|
||
"properties": {
|
||
"status": {
|
||
"description": "Status 目标用户状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.UserStatus"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"dto.UserTenantItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"description": "Code 租户编码。",
|
||
"type": "string"
|
||
},
|
||
"expired_at": {
|
||
"description": "ExpiredAt 租户过期时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"joined_at": {
|
||
"description": "JoinedAt 加入时间(RFC3339)。",
|
||
"type": "string"
|
||
},
|
||
"member_status": {
|
||
"description": "MemberStatus 成员状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.UserStatus"
|
||
}
|
||
]
|
||
},
|
||
"member_status_description": {
|
||
"description": "MemberStatusDescription 成员状态描述。",
|
||
"type": "string"
|
||
},
|
||
"name": {
|
||
"description": "Name 租户名称。",
|
||
"type": "string"
|
||
},
|
||
"owner": {
|
||
"description": "Owner 租户所有者用户信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/dto.TenantOwnerUserLite"
|
||
}
|
||
]
|
||
},
|
||
"role": {
|
||
"description": "Role 用户在该租户内的角色列表。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/consts.TenantUserRole"
|
||
}
|
||
},
|
||
"tenant_id": {
|
||
"description": "TenantID 租户ID。",
|
||
"type": "integer"
|
||
},
|
||
"tenant_status": {
|
||
"description": "TenantStatus 租户状态。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.TenantStatus"
|
||
}
|
||
]
|
||
},
|
||
"tenant_status_description": {
|
||
"description": "TenantStatusDescription 租户状态描述。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.UserUpdate": {
|
||
"type": "object",
|
||
"properties": {
|
||
"avatar": {
|
||
"description": "Avatar 头像URL。",
|
||
"type": "string"
|
||
},
|
||
"bio": {
|
||
"description": "Bio 个人简介。",
|
||
"type": "string"
|
||
},
|
||
"birthday": {
|
||
"description": "Birthday 生日(YYYY-MM-DD)。",
|
||
"type": "string"
|
||
},
|
||
"gender": {
|
||
"description": "Gender 性别(枚举)。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.Gender"
|
||
}
|
||
]
|
||
},
|
||
"location": {
|
||
"description": "Location 地区信息(省/市)。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/quyun_v2_app_http_v1_dto.Location"
|
||
}
|
||
]
|
||
},
|
||
"nickname": {
|
||
"description": "Nickname 昵称。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"dto.WalletResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"balance": {
|
||
"description": "Balance 账户余额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"transactions": {
|
||
"description": "Transactions 交易流水列表。",
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/definitions/dto.Transaction"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"dto.WithdrawForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"account_id": {
|
||
"description": "AccountID 收款账户ID。",
|
||
"type": "integer"
|
||
},
|
||
"amount": {
|
||
"description": "Amount 提现金额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"method": {
|
||
"description": "Method 提现方式(wallet/external)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_super_v1_dto.Location": {
|
||
"type": "object",
|
||
"properties": {
|
||
"city": {
|
||
"description": "City 城市名称。",
|
||
"type": "string"
|
||
},
|
||
"province": {
|
||
"description": "Province 省份名称。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_super_v1_dto.LoginForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"password": {
|
||
"description": "Password 登录密码(加密传输)。",
|
||
"type": "string"
|
||
},
|
||
"username": {
|
||
"description": "Username 登录用户名。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_super_v1_dto.LoginResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"token": {
|
||
"description": "Token 登录后签发的 JWT。",
|
||
"type": "string"
|
||
},
|
||
"user": {
|
||
"description": "User 当前登录用户信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/quyun_v2_app_http_super_v1_dto.User"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_super_v1_dto.User": {
|
||
"type": "object",
|
||
"properties": {
|
||
"avatar": {
|
||
"description": "Avatar 头像URL。",
|
||
"type": "string"
|
||
},
|
||
"balance": {
|
||
"description": "Balance 账户余额(元)。",
|
||
"type": "number"
|
||
},
|
||
"bio": {
|
||
"description": "Bio 用户简介。",
|
||
"type": "string"
|
||
},
|
||
"birthday": {
|
||
"description": "Birthday 生日(YYYY-MM-DD)。",
|
||
"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"
|
||
},
|
||
"location": {
|
||
"description": "Location 所在地(省/市)。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/quyun_v2_app_http_super_v1_dto.Location"
|
||
}
|
||
]
|
||
},
|
||
"nickname": {
|
||
"description": "Nickname 用户昵称。",
|
||
"type": "string"
|
||
},
|
||
"phone": {
|
||
"description": "Phone 手机号。",
|
||
"type": "string"
|
||
},
|
||
"points": {
|
||
"description": "Points 用户积分。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_v1_dto.Location": {
|
||
"type": "object",
|
||
"properties": {
|
||
"city": {
|
||
"description": "City 城市名称。",
|
||
"type": "string"
|
||
},
|
||
"province": {
|
||
"description": "Province 省份名称。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_v1_dto.LoginForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"otp": {
|
||
"description": "OTP 短信验证码。",
|
||
"type": "string"
|
||
},
|
||
"phone": {
|
||
"description": "Phone 手机号(登录账号)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_v1_dto.LoginResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"token": {
|
||
"description": "Token 登录成功后的 JWT。",
|
||
"type": "string"
|
||
},
|
||
"user": {
|
||
"description": "User 当前登录用户信息。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/quyun_v2_app_http_v1_dto.User"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_v1_dto.SendOTPForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"phone": {
|
||
"description": "Phone 手机号(用于发送验证码)。",
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"quyun_v2_app_http_v1_dto.User": {
|
||
"type": "object",
|
||
"properties": {
|
||
"avatar": {
|
||
"description": "Avatar 头像URL。",
|
||
"type": "string"
|
||
},
|
||
"balance": {
|
||
"description": "Balance 余额(单位元)。",
|
||
"type": "number"
|
||
},
|
||
"bio": {
|
||
"description": "Bio 个人简介。",
|
||
"type": "string"
|
||
},
|
||
"birthday": {
|
||
"description": "Birthday 生日(YYYY-MM-DD)。",
|
||
"type": "string"
|
||
},
|
||
"gender": {
|
||
"description": "Gender 性别(枚举)。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/consts.Gender"
|
||
}
|
||
]
|
||
},
|
||
"id": {
|
||
"description": "ID 用户ID。",
|
||
"type": "integer"
|
||
},
|
||
"is_real_name_verified": {
|
||
"description": "IsRealNameVerified 是否完成实名认证。",
|
||
"type": "boolean"
|
||
},
|
||
"location": {
|
||
"description": "Location 地区信息(省/市)。",
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/definitions/quyun_v2_app_http_v1_dto.Location"
|
||
}
|
||
]
|
||
},
|
||
"nickname": {
|
||
"description": "Nickname 昵称。",
|
||
"type": "string"
|
||
},
|
||
"phone": {
|
||
"description": "Phone 绑定手机号。",
|
||
"type": "string"
|
||
},
|
||
"points": {
|
||
"description": "Points 积分余额。",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"requests.KV": {
|
||
"type": "object",
|
||
"properties": {
|
||
"key": {
|
||
"description": "Key is a machine-readable value, usually an enum string.",
|
||
"type": "string"
|
||
},
|
||
"value": {
|
||
"description": "Value is the label payload, often a human-readable string."
|
||
}
|
||
}
|
||
},
|
||
"requests.Pager": {
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"description": "Items is the paged result list; concrete type depends on endpoint."
|
||
},
|
||
"limit": {
|
||
"description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
|
||
"type": "integer"
|
||
},
|
||
"page": {
|
||
"description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
|
||
"type": "integer"
|
||
},
|
||
"total": {
|
||
"description": "Total is the total number of items matching current filter (before paging).",
|
||
"type": "integer"
|
||
}
|
||
}
|
||
},
|
||
"v1.WebhookForm": {
|
||
"type": "object",
|
||
"properties": {
|
||
"external_id": {
|
||
"type": "string"
|
||
},
|
||
"order_id": {
|
||
"type": "integer"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"securityDefinitions": {
|
||
"BasicAuth": {
|
||
"type": "basic"
|
||
}
|
||
},
|
||
"externalDocs": {
|
||
"description": "OpenAPI",
|
||
"url": "https://swagger.io/resources/open-api/"
|
||
}
|
||
}`
|
||
|
||
// SwaggerInfo holds exported Swagger Info so clients can modify it
|
||
var SwaggerInfo = &swag.Spec{
|
||
Version: "1.0",
|
||
Host: "localhost:8080",
|
||
BasePath: "/",
|
||
Schemes: []string{},
|
||
Title: "ApiDoc",
|
||
Description: "Multi-tenant media platform backend API.",
|
||
InfoInstanceName: "swagger",
|
||
SwaggerTemplate: docTemplate,
|
||
LeftDelim: "{{",
|
||
RightDelim: "}}",
|
||
}
|
||
|
||
func init() {
|
||
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
|
||
}
|