Files
quyun-v2/backend/docs/docs.go
2026-01-14 11:29:17 +08:00

6621 lines
224 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 回复的评论ID0 表示一级评论)。",
"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 被回复评论ID0 表示一级评论)。",
"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 对象存储KeyS3 直传使用)。",
"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)
}