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