Files
quyun-v2/backend/docs/docs.go
2026-01-09 11:48:53 +08:00

5284 lines
173 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/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/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/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/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/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": "Tenant 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/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/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": {
"$ref": "#/definitions/dto.ContentItem"
},
"owner": {
"$ref": "#/definitions/dto.AdminContentOwnerLite"
},
"price": {
"$ref": "#/definitions/dto.ContentPrice"
},
"status_description": {
"type": "string"
},
"tenant": {
"description": "Tenant 内容所属租户信息,用于超管列表展示与跳转。",
"allOf": [
{
"$ref": "#/definitions/dto.SuperContentTenantLite"
}
]
},
"visibility_description": {
"type": "string"
}
}
},
"dto.AdminContentOwnerLite": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"roles": {
"type": "array",
"items": {
"$ref": "#/definitions/consts.Role"
}
},
"status": {
"$ref": "#/definitions/consts.UserStatus"
},
"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.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": {
"type": "integer"
},
"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": {
"type": "array",
"items": {
"$ref": "#/definitions/dto.OrderStatisticsRow"
}
},
"total_amount_paid_sum": {
"type": "integer"
},
"total_count": {
"type": "integer"
}
}
},
"dto.OrderStatisticsRow": {
"type": "object",
"properties": {
"amount_paid_sum": {
"type": "integer"
},
"count": {
"type": "integer"
},
"status": {
"$ref": "#/definitions/consts.OrderStatus"
},
"status_description": {
"type": "string"
}
}
},
"dto.OrderStatusResponse": {
"type": "object",
"properties": {
"status": {
"description": "Status 订单状态unpaid/paid/completed 等)。",
"type": "string"
}
}
},
"dto.OrderTenantLite": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"id": {
"type": "integer"
},
"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.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.SuperContentTenantLite": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"dto.SuperOrderDetail": {
"type": "object",
"properties": {
"buyer": {
"$ref": "#/definitions/dto.OrderBuyerLite"
},
"order": {
"description": "Using SuperOrderItem as base, extend if needed",
"allOf": [
{
"$ref": "#/definitions/dto.SuperOrderItem"
}
]
},
"tenant": {
"$ref": "#/definitions/dto.OrderTenantLite"
}
}
},
"dto.SuperOrderItem": {
"type": "object",
"properties": {
"amount_discount": {
"type": "integer"
},
"amount_original": {
"type": "integer"
},
"amount_paid": {
"type": "integer"
},
"buyer": {
"$ref": "#/definitions/dto.OrderBuyerLite"
},
"created_at": {
"type": "string"
},
"currency": {
"$ref": "#/definitions/consts.Currency"
},
"id": {
"type": "integer"
},
"items": {
"description": "Items 订单明细行,用于展示具体内容与金额拆分。",
"type": "array",
"items": {
"$ref": "#/definitions/dto.SuperOrderItemLine"
}
},
"paid_at": {
"type": "string"
},
"refunded_at": {
"type": "string"
},
"snapshot": {
"description": "Snapshot 订单快照,包含下单时的关键参数与定价信息,便于审计回溯。"
},
"status": {
"$ref": "#/definitions/consts.OrderStatus"
},
"status_description": {
"type": "string"
},
"tenant": {
"$ref": "#/definitions/dto.OrderTenantLite"
},
"type": {
"$ref": "#/definitions/consts.OrderType"
},
"updated_at": {
"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": {
"type": "boolean"
},
"idempotency_key": {
"type": "string"
},
"reason": {
"type": "string"
}
}
},
"dto.SuperTenantContentStatusUpdateForm": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"enum": [
"unpublished",
"blocked"
],
"allOf": [
{
"$ref": "#/definitions/consts.ContentStatus"
}
]
}
}
},
"dto.SuperTenantUserItem": {
"type": "object",
"properties": {
"tenant_user": {
"$ref": "#/definitions/dto.TenantUser"
},
"user": {
"$ref": "#/definitions/dto.SuperUserLite"
}
}
},
"dto.SuperUserLite": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"roles": {
"type": "array",
"items": {
"$ref": "#/definitions/consts.Role"
}
},
"status": {
"$ref": "#/definitions/consts.UserStatus"
},
"status_description": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"username": {
"type": "string"
},
"verified_at": {
"type": "string"
}
}
},
"dto.TenantAdminUserLite": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"username": {
"type": "string"
}
}
},
"dto.TenantCreateForm": {
"type": "object",
"required": [
"admin_user_id",
"code",
"duration",
"name"
],
"properties": {
"admin_user_id": {
"type": "integer"
},
"code": {
"type": "string",
"maxLength": 64
},
"duration": {
"type": "integer",
"enum": [
7,
30,
90,
180,
365
]
},
"name": {
"type": "string",
"maxLength": 128
}
}
},
"dto.TenantExpireUpdateForm": {
"type": "object",
"required": [
"duration"
],
"properties": {
"duration": {
"type": "integer",
"enum": [
7,
30,
90,
180,
365
]
}
}
},
"dto.TenantItem": {
"type": "object",
"properties": {
"admin_users": {
"type": "array",
"items": {
"$ref": "#/definitions/dto.TenantAdminUserLite"
}
},
"code": {
"type": "string"
},
"config": {
"description": "Replace with actual config struct if needed",
"type": "array",
"items": {
"type": "integer"
}
},
"created_at": {
"type": "string"
},
"expired_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"income_amount_paid_sum": {
"type": "integer"
},
"name": {
"type": "string"
},
"owner": {
"$ref": "#/definitions/dto.TenantOwnerUserLite"
},
"status": {
"$ref": "#/definitions/consts.TenantStatus"
},
"status_description": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"user_count": {
"type": "integer"
},
"user_id": {
"type": "integer"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/dto.SuperUserLite"
}
},
"uuid": {
"type": "string"
}
}
},
"dto.TenantOwnerUserLite": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"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": {
"$ref": "#/definitions/consts.TenantStatus"
}
}
},
"dto.TenantUser": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"role": {
"type": "array",
"items": {
"$ref": "#/definitions/consts.TenantUserRole"
}
},
"status": {
"$ref": "#/definitions/consts.UserStatus"
},
"tenant_id": {
"type": "integer"
},
"updated_at": {
"type": "string"
},
"user_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": {
"type": "integer"
},
"balance_frozen": {
"type": "integer"
},
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"joined_tenant_count": {
"type": "integer"
},
"owned_tenant_count": {
"type": "integer"
},
"roles": {
"type": "array",
"items": {
"$ref": "#/definitions/consts.Role"
}
},
"status": {
"$ref": "#/definitions/consts.UserStatus"
},
"status_description": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"username": {
"type": "string"
},
"verified_at": {
"type": "string"
}
}
},
"dto.UserRolesUpdateForm": {
"type": "object",
"required": [
"roles"
],
"properties": {
"roles": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/consts.Role"
}
}
}
},
"dto.UserStatistics": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"status": {
"$ref": "#/definitions/consts.UserStatus"
},
"status_description": {
"type": "string"
}
}
},
"dto.UserStatusUpdateForm": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"$ref": "#/definitions/consts.UserStatus"
}
}
},
"dto.UserTenantItem": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"expired_at": {
"type": "string"
},
"joined_at": {
"type": "string"
},
"member_status": {
"$ref": "#/definitions/consts.UserStatus"
},
"member_status_description": {
"type": "string"
},
"name": {
"type": "string"
},
"owner": {
"$ref": "#/definitions/dto.TenantOwnerUserLite"
},
"role": {
"type": "array",
"items": {
"$ref": "#/definitions/consts.TenantUserRole"
}
},
"tenant_id": {
"type": "integer"
},
"tenant_status": {
"$ref": "#/definitions/consts.TenantStatus"
},
"tenant_status_description": {
"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": {
"type": "string"
},
"province": {
"type": "string"
}
}
},
"quyun_v2_app_http_super_v1_dto.LoginForm": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"quyun_v2_app_http_super_v1_dto.LoginResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"user": {
"$ref": "#/definitions/quyun_v2_app_http_super_v1_dto.User"
}
}
},
"quyun_v2_app_http_super_v1_dto.User": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"balance": {
"type": "number"
},
"bio": {
"type": "string"
},
"birthday": {
"description": "YYYY-MM-DD",
"type": "string"
},
"gender": {
"$ref": "#/definitions/consts.Gender"
},
"id": {
"type": "integer"
},
"is_real_name_verified": {
"type": "boolean"
},
"location": {
"$ref": "#/definitions/quyun_v2_app_http_super_v1_dto.Location"
},
"nickname": {
"type": "string"
},
"phone": {
"type": "string"
},
"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)
}