// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs

import "github.com/rogeecn/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "termsOfService": "http://swagger.io/terms/",
        "contact": {
            "name": "UserName",
            "url": "http://www.swagger.io/support",
            "email": "support@swagger.io"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/super/v1/auth/login": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "parameters": [
                    {
                        "description": "form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_super_dto.LoginForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_super_dto.LoginResponse"
                        }
                    }
                }
            }
        },
        "/super/v1/auth/token": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_super_dto.LoginResponse"
                        }
                    }
                }
            }
        },
        "/super/v1/contents": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "内容列表（平台侧汇总）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "keyword",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "price_amount_max",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "price_amount_min",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "published_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "published_at_to",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "draft",
                            "reviewing",
                            "published",
                            "unpublished",
                            "blocked"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ContentStatusDraft",
                            "ContentStatusReviewing",
                            "ContentStatusPublished",
                            "ContentStatusUnpublished",
                            "ContentStatusBlocked"
                        ],
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "tenant_code",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "tenant_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "tenant_name",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "username",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "public",
                            "tenant_only",
                            "private"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ContentVisibilityPublic",
                            "ContentVisibilityTenantOnly",
                            "ContentVisibilityPrivate"
                        ],
                        "name": "visibility",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.SuperContentItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/super/v1/orders": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "订单列表",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "amount_paid_max",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "amount_paid_min",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "content_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "content_title",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "paid_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "paid_at_to",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "created",
                            "paid",
                            "refunding",
                            "refunded",
                            "canceled",
                            "failed"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderStatusCreated",
                            "OrderStatusPaid",
                            "OrderStatusRefunding",
                            "OrderStatusRefunded",
                            "OrderStatusCanceled",
                            "OrderStatusFailed"
                        ],
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "tenant_code",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "tenant_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "tenant_name",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "content_purchase"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderTypeContentPurchase"
                        ],
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "username",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.SuperOrderItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/super/v1/orders/statistics": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "订单统计信息",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.OrderStatisticsResponse"
                        }
                    }
                }
            }
        },
        "/super/v1/orders/{orderID}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "订单详情",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "OrderID",
                        "name": "orderID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.SuperOrderDetail"
                        }
                    }
                }
            }
        },
        "/super/v1/orders/{orderID}/refund": {
            "post": {
                "description": "该接口只负责将订单从 paid 推进到 refunding，并提交异步退款任务；退款入账与权益回收由 worker 异步完成。",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "订单退款（平台）",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "OrderID",
                        "name": "orderID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.SuperOrderRefundForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.Order"
                        }
                    }
                }
            }
        },
        "/super/v1/tenants": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "租户列表",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "code",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "expired_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "expired_at_to",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "name",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pending_verify",
                            "verified",
                            "banned"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TenantStatusPendingVerify",
                            "TenantStatusVerified",
                            "TenantStatusBanned"
                        ],
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "user_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.TenantItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "创建租户并设置租户管理员",
                "parameters": [
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.TenantCreateForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.Tenant"
                        }
                    }
                }
            }
        },
        "/super/v1/tenants/statuses": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "租户状态列表",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/requests.KV"
                            }
                        }
                    }
                }
            }
        },
        "/super/v1/tenants/{tenantID}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "租户详情",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "TenantID",
                        "name": "tenantID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.TenantItem"
                        }
                    }
                }
            },
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "更新过期时间",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "TenantID",
                        "name": "tenantID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.TenantExpireUpdateForm"
                        }
                    }
                ],
                "responses": {}
            }
        },
        "/super/v1/tenants/{tenantID}/contents": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "租户内容列表（平台侧）",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "TenantID",
                        "name": "tenantID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "keyword",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "published_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "published_at_to",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "draft",
                            "reviewing",
                            "published",
                            "unpublished",
                            "blocked"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ContentStatusDraft",
                            "ContentStatusReviewing",
                            "ContentStatusPublished",
                            "ContentStatusUnpublished",
                            "ContentStatusBlocked"
                        ],
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "public",
                            "tenant_only",
                            "private"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ContentVisibilityPublic",
                            "ContentVisibilityTenantOnly",
                            "ContentVisibilityPrivate"
                        ],
                        "name": "visibility",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.SuperTenantContentItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/super/v1/tenants/{tenantID}/contents/{contentID}/status": {
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "更新租户内容状态（平台侧：下架/封禁）",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "TenantID",
                        "name": "tenantID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.SuperTenantContentStatusUpdateForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.Content"
                        }
                    }
                }
            }
        },
        "/super/v1/tenants/{tenantID}/status": {
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "更新租户状态",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "TenantID",
                        "name": "tenantID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.TenantStatusUpdateForm"
                        }
                    }
                ],
                "responses": {}
            }
        },
        "/super/v1/tenants/{tenantID}/users": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "租户成员列表（平台侧）",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "TenantID",
                        "name": "tenantID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "member",
                            "tenant_admin"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TenantUserRoleMember",
                            "TenantUserRoleTenantAdmin"
                        ],
                        "description": "Role 按角色过滤（可选）：member/tenant_admin。",
                        "name": "role",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pending_verify",
                            "verified",
                            "banned"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "UserStatusPendingVerify",
                            "UserStatusVerified",
                            "UserStatusBanned"
                        ],
                        "description": "Status 按成员状态过滤（可选）：pending_verify/verified/banned。",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "UserID 按用户ID过滤（可选）。",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Username 按用户名模糊查询（可选，支持包含匹配）。",
                        "name": "username",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.SuperTenantUserItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/super/v1/users": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "用户列表",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "user",
                            "super_admin"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "RoleUser",
                            "RoleSuperAdmin"
                        ],
                        "description": "Role filters users containing a role (user/super_admin).",
                        "name": "role",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pending_verify",
                            "verified",
                            "banned"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "UserStatusPendingVerify",
                            "UserStatusVerified",
                            "UserStatusBanned"
                        ],
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "TenantID filters users by membership in the given tenant.",
                        "name": "tenant_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "username",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "verified_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "verified_at_to",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.UserItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/super/v1/users/statistics": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "用户统计信息",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/dto.UserStatistics"
                            }
                        }
                    }
                }
            }
        },
        "/super/v1/users/statuses": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "用户状态列表",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/requests.KV"
                            }
                        }
                    }
                }
            }
        },
        "/super/v1/users/{userID}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "用户详情",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "UserID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.UserItem"
                        }
                    }
                }
            }
        },
        "/super/v1/users/{userID}/roles": {
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "更新用户角色",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "UserID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.UserRolesUpdateForm"
                        }
                    }
                ],
                "responses": {}
            }
        },
        "/super/v1/users/{userID}/status": {
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "更新用户状态",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "UserID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.UserStatusUpdateForm"
                        }
                    }
                ],
                "responses": {}
            }
        },
        "/super/v1/users/{userID}/tenants": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Super"
                ],
                "summary": "用户加入的租户列表",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "UserID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "code",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "name",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "member",
                            "tenant_admin"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TenantUserRoleMember",
                            "TenantUserRoleTenantAdmin"
                        ],
                        "description": "Role filters tenant_users.role containing a role (tenant_admin/member).",
                        "name": "role",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pending_verify",
                            "verified",
                            "banned"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "UserStatusPendingVerify",
                            "UserStatusVerified",
                            "UserStatusBanned"
                        ],
                        "description": "Status filters tenant_users.status.",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "tenant_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.UserTenantItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/contents": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "内容列表（已发布）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Keyword filters by title keyword (LIKE).",
                        "name": "keyword",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.ContentItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/contents/{contentID}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "内容详情（可见性+权益校验）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ContentDetail"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/contents/{contentID}/assets": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "获取正片资源（main role，需要已购或免费）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ContentAssetsResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/contents/{contentID}/preview": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "获取试看资源（preview role）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ContentAssetsResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/contents/{contentID}/purchase": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "购买内容（余额支付）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.PurchaseContentForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.PurchaseContentResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/join/invite": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantJoin"
                ],
                "summary": "通过邀请码加入租户",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.JoinByInviteForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.TenantUser"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/join/request": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantJoin"
                ],
                "summary": "提交加入租户申请",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.JoinRequestCreateForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.TenantJoinRequest"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/contents": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "内容列表（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "keyword",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "published_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "published_at_to",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "draft",
                            "reviewing",
                            "published",
                            "unpublished",
                            "blocked"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ContentStatusDraft",
                            "ContentStatusReviewing",
                            "ContentStatusPublished",
                            "ContentStatusUnpublished",
                            "ContentStatusBlocked"
                        ],
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "public",
                            "tenant_only",
                            "private"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ContentVisibilityPublic",
                            "ContentVisibilityTenantOnly",
                            "ContentVisibilityPrivate"
                        ],
                        "name": "visibility",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.AdminContentItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "创建内容（草稿）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ContentCreateForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.Content"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/contents/publish": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "内容发布（创建+绑定资源+定价）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ContentPublishForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ContentPublishResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/contents/{contentID}": {
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "更新内容（标题/描述/状态等）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ContentUpdateForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.Content"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/contents/{contentID}/assets": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "绑定媒体资源到内容（main/cover/preview）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ContentAssetAttachForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ContentAsset"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/contents/{contentID}/price": {
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "设置内容价格与折扣",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ContentPriceUpsertForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.ContentPrice"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/invites": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "邀请码列表（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Code 按邀请码模糊过滤（可选）：支持部分匹配（like）。",
                        "name": "code",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "active",
                            "disabled",
                            "expired"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TenantInviteStatusActive",
                            "TenantInviteStatusDisabled",
                            "TenantInviteStatusExpired"
                        ],
                        "description": "Status 按状态过滤（可选）：active/disabled/expired。",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/models.TenantInvite"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "创建邀请码（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.AdminTenantInviteCreateForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.TenantInvite"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/invites/{inviteID}/disable": {
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "禁用邀请码（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "InviteID",
                        "name": "inviteID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.AdminTenantInviteDisableForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.TenantInvite"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/join-requests": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "加入申请列表（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pending",
                            "approved",
                            "rejected"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TenantJoinRequestStatusPending",
                            "TenantJoinRequestStatusApproved",
                            "TenantJoinRequestStatusRejected"
                        ],
                        "description": "Status 按申请状态过滤（可选）：pending/approved/rejected。",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "UserID 按申请人用户ID过滤（可选）。",
                        "name": "user_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/models.TenantJoinRequest"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/join-requests/{requestID}/approve": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "通过加入申请（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "RequestID",
                        "name": "requestID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.AdminTenantJoinRequestDecideForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.TenantJoinRequest"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/join-requests/{requestID}/reject": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "拒绝加入申请（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "RequestID",
                        "name": "requestID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.AdminTenantJoinRequestDecideForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.TenantJoinRequest"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/ledgers": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "余额流水列表（租户管理/审计）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "BizRefID 按业务引用ID过滤（可选）。",
                        "name": "biz_ref_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "BizRefType 按业务引用类型过滤（可选）。\n约定：当前业务写入为 \"order\"；未来可扩展为 refund 等。",
                        "name": "biz_ref_type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "CreatedAtFrom 创建时间起（可选）。",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "CreatedAtTo 创建时间止（可选）。",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "OperatorUserID 按操作者用户ID过滤（可选）。\n典型场景：后台检索“某个管理员发起的退款/调账”等敏感操作流水。",
                        "name": "operator_user_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "OrderID 按关联订单过滤（可选）。",
                        "name": "order_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "debit_purchase",
                            "credit_refund",
                            "freeze",
                            "unfreeze",
                            "adjustment"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TenantLedgerTypeDebitPurchase",
                            "TenantLedgerTypeCreditRefund",
                            "TenantLedgerTypeFreeze",
                            "TenantLedgerTypeUnfreeze",
                            "TenantLedgerTypeAdjustment"
                        ],
                        "description": "Type 按流水类型过滤（可选）。",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "UserID 按余额账户归属用户ID过滤（可选）。\n典型场景：查看某个租户成员的资金变化全链路。",
                        "name": "user_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.AdminLedgerItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/media_assets": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "媒体资源列表（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "CreatedAtFrom filters assets by created_at \u003e= this time; optional.",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "CreatedAtTo filters assets by created_at \u003c= this time; optional.",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "uploaded",
                            "processing",
                            "ready",
                            "failed",
                            "deleted"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "MediaAssetStatusUploaded",
                            "MediaAssetStatusProcessing",
                            "MediaAssetStatusReady",
                            "MediaAssetStatusFailed",
                            "MediaAssetStatusDeleted"
                        ],
                        "description": "Status filters by processing status (uploaded/processing/ready/failed/deleted); optional.",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "video",
                            "audio",
                            "image"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "MediaAssetTypeVideo",
                            "MediaAssetTypeAudio",
                            "MediaAssetTypeImage"
                        ],
                        "description": "Type filters by media type (video/audio/image); optional.",
                        "name": "type",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/models.MediaAsset"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/media_assets/upload_init": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "初始化媒体资源上传（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.AdminMediaAssetUploadInitForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.AdminMediaAssetUploadInitResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/media_assets/{assetID}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "媒体资源详情（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "AssetID",
                        "name": "assetID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MediaAsset"
                        }
                    }
                }
            },
            "delete": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "删除媒体资源（租户管理，软删）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "AssetID",
                        "name": "assetID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MediaAsset"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/media_assets/{assetID}/upload_complete": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "确认上传完成并进入处理（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "AssetID",
                        "name": "assetID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/dto.AdminMediaAssetUploadCompleteForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.MediaAsset"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/orders": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "订单列表（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "AmountPaidMax 实付金额上限（可选）：amount_paid \u003c= 该值（单位分）。",
                        "name": "amount_paid_max",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "AmountPaidMin 实付金额下限（可选）：amount_paid \u003e= 该值（单位分）。",
                        "name": "amount_paid_min",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "ContentID 内容ID（可选）：通过 order_items 关联过滤。",
                        "name": "content_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "ContentTitle 内容标题关键字（可选）：通过 order_items + contents 关联，模糊匹配 contents.title（like）。",
                        "name": "content_title",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "CreatedAtFrom 创建时间起（可选）：created_at \u003e= 该时间（用于按创建时间筛选）。",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "CreatedAtTo 创建时间止（可选）：created_at \u003c= 该时间（用于按创建时间筛选）。",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "PaidAtFrom 支付时间起（可选）：paid_at \u003e= 该时间（用于按支付时间筛选）。",
                        "name": "paid_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "PaidAtTo 支付时间止（可选）：paid_at \u003c= 该时间（用于按支付时间筛选）。",
                        "name": "paid_at_to",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "created",
                            "paid",
                            "refunding",
                            "refunded",
                            "canceled",
                            "failed"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderStatusCreated",
                            "OrderStatusPaid",
                            "OrderStatusRefunding",
                            "OrderStatusRefunded",
                            "OrderStatusCanceled",
                            "OrderStatusFailed"
                        ],
                        "description": "Status 订单状态（可选）：created/paid/refunding/refunded/canceled/failed。",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "content_purchase"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderTypeContentPurchase"
                        ],
                        "description": "Type 订单类型（可选）：content_purchase 等。",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "UserID 下单用户ID（可选）：按买家用户ID精确过滤。",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Username 下单用户用户名关键字（可选）：模糊匹配 users.username（like）。",
                        "name": "username",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/models.Order"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/orders/export": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "订单导出（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "AmountPaidMax 实付金额上限（可选）：amount_paid \u003c= 该值（单位分）。",
                        "name": "amount_paid_max",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "AmountPaidMin 实付金额下限（可选）：amount_paid \u003e= 该值（单位分）。",
                        "name": "amount_paid_min",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Asc specifies comma-separated field names to sort ascending by.",
                        "name": "asc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "ContentID 内容ID（可选）：通过 order_items 关联过滤。",
                        "name": "content_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "ContentTitle 内容标题关键字（可选）：通过 order_items + contents 关联，模糊匹配 contents.title（like）。",
                        "name": "content_title",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "CreatedAtFrom 创建时间起（可选）：created_at \u003e= 该时间（用于按创建时间筛选）。",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "CreatedAtTo 创建时间止（可选）：created_at \u003c= 该时间（用于按创建时间筛选）。",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Desc specifies comma-separated field names to sort descending by.",
                        "name": "desc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "PaidAtFrom 支付时间起（可选）：paid_at \u003e= 该时间（用于按支付时间筛选）。",
                        "name": "paid_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "PaidAtTo 支付时间止（可选）：paid_at \u003c= 该时间（用于按支付时间筛选）。",
                        "name": "paid_at_to",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "created",
                            "paid",
                            "refunding",
                            "refunded",
                            "canceled",
                            "failed"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderStatusCreated",
                            "OrderStatusPaid",
                            "OrderStatusRefunding",
                            "OrderStatusRefunded",
                            "OrderStatusCanceled",
                            "OrderStatusFailed"
                        ],
                        "description": "Status 订单状态（可选）：created/paid/refunding/refunded/canceled/failed。",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "content_purchase"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderTypeContentPurchase"
                        ],
                        "description": "Type 订单类型（可选）：content_purchase 等。",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "UserID 下单用户ID（可选）：按买家用户ID精确过滤。",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Username 下单用户用户名关键字（可选）：模糊匹配 users.username（like）。",
                        "name": "username",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.AdminOrderExportResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/orders/{orderID}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "订单详情（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "OrderID",
                        "name": "orderID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.AdminOrderDetail"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/orders/{orderID}/refund": {
            "post": {
                "description": "该接口只负责将订单从 paid 推进到 refunding，并提交异步退款任务；退款入账与权益回收由 worker 异步完成。\n重复请求幂等：订单处于 refunding/refunded 时会返回当前订单状态，不会重复入账/重复回收权益。",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "订单退款（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "OrderID",
                        "name": "orderID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.AdminOrderRefundForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.Order"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/users": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "成员列表（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "member",
                            "tenant_admin"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TenantUserRoleMember",
                            "TenantUserRoleTenantAdmin"
                        ],
                        "description": "Role 按角色过滤（可选）：member/tenant_admin。",
                        "name": "role",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pending_verify",
                            "verified",
                            "banned"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "UserStatusPendingVerify",
                            "UserStatusVerified",
                            "UserStatusBanned"
                        ],
                        "description": "Status 按成员状态过滤（可选）：pending_verify/verified/banned。",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "UserID 按用户ID过滤（可选）。",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Username 按用户名模糊查询（可选，支持包含匹配）。",
                        "name": "username",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.AdminTenantUserItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/users/{userID}": {
            "delete": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "移除租户成员（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "UserID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/requests.Pager"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/users/{userID}/join": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "添加租户成员（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "UserID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.AdminTenantUserJoinResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/management/users/{userID}/role": {
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "设置成员角色（租户管理）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "UserID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.AdminTenantUserRoleUpdateForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.AdminTenantUserJoinResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/me": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "当前租户上下文信息",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_tenant_dto.MeResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/me/balance": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "当前租户余额信息",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.MeBalanceResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/me/ledgers": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "当前租户余额流水（分页）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.MyLedgerItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/media/play": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantMedia"
                ],
                "summary": "媒体播放入口（短时效 token）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Play token",
                        "name": "token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {}
            }
        },
        "/t/{tenantCode}/v1/orders": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "我的订单列表（当前租户）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "ContentID filters orders by purchased content id (via order_items join).",
                        "name": "content_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "PaidAtFrom filters orders by paid_at \u003e= this time.",
                        "name": "paid_at_from",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "PaidAtTo filters orders by paid_at \u003c= this time.",
                        "name": "paid_at_to",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "created",
                            "paid",
                            "refunding",
                            "refunded",
                            "canceled",
                            "failed"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "OrderStatusCreated",
                            "OrderStatusPaid",
                            "OrderStatusRefunding",
                            "OrderStatusRefunded",
                            "OrderStatusCanceled",
                            "OrderStatusFailed"
                        ],
                        "description": "Status filters orders by order status.",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/models.Order"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/orders/{orderID}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenant"
                ],
                "summary": "我的订单详情（当前租户）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "OrderID",
                        "name": "orderID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.Order"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/public/contents": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantPublic"
                ],
                "summary": "公开内容列表（已发布 + public）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Keyword filters by title keyword (LIKE).",
                        "name": "keyword",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
                        "name": "page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/requests.Pager"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "$ref": "#/definitions/dto.ContentItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/public/contents/{contentID}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantPublic"
                ],
                "summary": "公开内容详情（已发布 + public）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ContentDetail"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/public/contents/{contentID}/assets": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantPublic"
                ],
                "summary": "获取公开正片资源（main role；免费/作者/已购）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ContentAssetsResponse"
                        }
                    }
                }
            }
        },
        "/t/{tenantCode}/v1/public/contents/{contentID}/preview": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenantPublic"
                ],
                "summary": "获取公开试看资源（preview role）",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tenant Code",
                        "name": "tenantCode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "ContentID",
                        "name": "contentID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ContentAssetsResponse"
                        }
                    }
                }
            }
        },
        "/v1/auth/login": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "用户登录",
                "parameters": [
                    {
                        "description": "form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_web_dto.LoginForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_web_dto.LoginResponse"
                        }
                    }
                }
            }
        },
        "/v1/auth/password/reset": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "找回密码-重置密码",
                "parameters": [
                    {
                        "description": "form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.PasswordResetForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/dto.PasswordResetResponse"
                        }
                    }
                }
            }
        },
        "/v1/auth/password/reset/sms": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "找回密码-发送短信验证码",
                "parameters": [
                    {
                        "description": "form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.PasswordResetSendSMSForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/dto.PasswordResetSendSMSResponse"
                        }
                    }
                }
            }
        },
        "/v1/auth/password/reset/verify": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "找回密码-校验验证码",
                "parameters": [
                    {
                        "description": "form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.PasswordResetVerifyForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/dto.PasswordResetVerifyResponse"
                        }
                    }
                }
            }
        },
        "/v1/auth/register": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "用户注册",
                "parameters": [
                    {
                        "description": "form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.RegisterForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_web_dto.LoginResponse"
                        }
                    }
                }
            }
        },
        "/v1/auth/token": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "刷新 Token",
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_web_dto.LoginResponse"
                        }
                    }
                }
            }
        },
        "/v1/me": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "当前用户信息",
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/quyun_v2_app_http_web_dto.MeResponse"
                        }
                    }
                }
            }
        },
        "/v1/me/tenants": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "我的租户列表",
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/dto.MyTenantItem"
                            }
                        }
                    }
                }
            }
        },
        "/v1/tenant/application": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "获取租户申请信息（申请创作者）",
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/dto.TenantApplicationResponse"
                        }
                    }
                }
            }
        },
        "/v1/tenant/apply": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Web"
                ],
                "summary": "提交租户申请（申请创作者）",
                "parameters": [
                    {
                        "description": "form",
                        "name": "form",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.TenantApplyForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/dto.TenantApplicationResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "consts.ContentAccessStatus": {
            "type": "string",
            "enum": [
                "active",
                "revoked",
                "expired"
            ],
            "x-enum-varnames": [
                "ContentAccessStatusActive",
                "ContentAccessStatusRevoked",
                "ContentAccessStatusExpired"
            ]
        },
        "consts.ContentAssetRole": {
            "type": "string",
            "enum": [
                "main",
                "cover",
                "preview"
            ],
            "x-enum-varnames": [
                "ContentAssetRoleMain",
                "ContentAssetRoleCover",
                "ContentAssetRolePreview"
            ]
        },
        "consts.ContentStatus": {
            "type": "string",
            "enum": [
                "draft",
                "reviewing",
                "published",
                "unpublished",
                "blocked"
            ],
            "x-enum-varnames": [
                "ContentStatusDraft",
                "ContentStatusReviewing",
                "ContentStatusPublished",
                "ContentStatusUnpublished",
                "ContentStatusBlocked"
            ]
        },
        "consts.ContentVisibility": {
            "type": "string",
            "enum": [
                "public",
                "tenant_only",
                "private"
            ],
            "x-enum-varnames": [
                "ContentVisibilityPublic",
                "ContentVisibilityTenantOnly",
                "ContentVisibilityPrivate"
            ]
        },
        "consts.Currency": {
            "type": "string",
            "enum": [
                "CNY"
            ],
            "x-enum-varnames": [
                "CurrencyCNY"
            ]
        },
        "consts.DiscountType": {
            "type": "string",
            "enum": [
                "none",
                "percent",
                "amount"
            ],
            "x-enum-varnames": [
                "DiscountTypeNone",
                "DiscountTypePercent",
                "DiscountTypeAmount"
            ]
        },
        "consts.MediaAssetStatus": {
            "type": "string",
            "enum": [
                "uploaded",
                "processing",
                "ready",
                "failed",
                "deleted"
            ],
            "x-enum-varnames": [
                "MediaAssetStatusUploaded",
                "MediaAssetStatusProcessing",
                "MediaAssetStatusReady",
                "MediaAssetStatusFailed",
                "MediaAssetStatusDeleted"
            ]
        },
        "consts.MediaAssetType": {
            "type": "string",
            "enum": [
                "video",
                "audio",
                "image"
            ],
            "x-enum-varnames": [
                "MediaAssetTypeVideo",
                "MediaAssetTypeAudio",
                "MediaAssetTypeImage"
            ]
        },
        "consts.MediaAssetVariant": {
            "type": "string",
            "enum": [
                "main",
                "preview"
            ],
            "x-enum-varnames": [
                "MediaAssetVariantMain",
                "MediaAssetVariantPreview"
            ]
        },
        "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"
            ],
            "x-enum-varnames": [
                "OrderTypeContentPurchase"
            ]
        },
        "consts.Role": {
            "type": "string",
            "enum": [
                "user",
                "super_admin"
            ],
            "x-enum-varnames": [
                "RoleUser",
                "RoleSuperAdmin"
            ]
        },
        "consts.TenantInviteStatus": {
            "type": "string",
            "enum": [
                "active",
                "disabled",
                "expired"
            ],
            "x-enum-varnames": [
                "TenantInviteStatusActive",
                "TenantInviteStatusDisabled",
                "TenantInviteStatusExpired"
            ]
        },
        "consts.TenantJoinRequestStatus": {
            "type": "string",
            "enum": [
                "pending",
                "approved",
                "rejected"
            ],
            "x-enum-varnames": [
                "TenantJoinRequestStatusPending",
                "TenantJoinRequestStatusApproved",
                "TenantJoinRequestStatusRejected"
            ]
        },
        "consts.TenantLedgerType": {
            "type": "string",
            "enum": [
                "debit_purchase",
                "credit_refund",
                "freeze",
                "unfreeze",
                "adjustment"
            ],
            "x-enum-varnames": [
                "TenantLedgerTypeDebitPurchase",
                "TenantLedgerTypeCreditRefund",
                "TenantLedgerTypeFreeze",
                "TenantLedgerTypeUnfreeze",
                "TenantLedgerTypeAdjustment"
            ]
        },
        "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": [
                "pending_verify",
                "verified",
                "banned"
            ],
            "x-enum-varnames": [
                "UserStatusPendingVerify",
                "UserStatusVerified",
                "UserStatusBanned"
            ]
        },
        "dto.AdminContentItem": {
            "type": "object",
            "properties": {
                "content": {
                    "$ref": "#/definitions/models.Content"
                },
                "owner": {
                    "$ref": "#/definitions/dto.AdminContentOwnerLite"
                },
                "price": {
                    "$ref": "#/definitions/models.ContentPrice"
                },
                "status_description": {
                    "type": "string"
                },
                "visibility_description": {
                    "type": "string"
                }
            }
        },
        "dto.AdminContentOwnerLite": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/consts.Role"
                    }
                },
                "status": {
                    "$ref": "#/definitions/consts.UserStatus"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "dto.AdminLedgerItem": {
            "type": "object",
            "properties": {
                "ledger": {
                    "description": "Ledger 流水记录（租户内隔离）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.TenantLedger"
                        }
                    ]
                },
                "type_description": {
                    "description": "TypeDescription 流水类型中文说明（用于前端展示）。",
                    "type": "string"
                }
            }
        },
        "dto.AdminMediaAssetUploadCompleteForm": {
            "type": "object",
            "properties": {
                "content_type": {
                    "description": "ContentType is the MIME type observed during upload; optional.\nServer may record it for audit and later processing decisions.",
                    "type": "string"
                },
                "etag": {
                    "description": "ETag is the storage returned ETag (or similar checksum); optional.\nUsed for audit/debugging and later integrity verification.",
                    "type": "string"
                },
                "file_size": {
                    "description": "FileSize is the uploaded object size in bytes; optional.\nServer records it for quota/audit and later validation.",
                    "type": "integer"
                },
                "sha256": {
                    "description": "SHA256 is the hex-encoded sha256 of the uploaded object; optional.\nServer records it for integrity checks/deduplication.",
                    "type": "string"
                }
            }
        },
        "dto.AdminMediaAssetUploadInitForm": {
            "type": "object",
            "properties": {
                "content_type": {
                    "description": "ContentType is the MIME type reported by the client (e.g. video/mp4); optional.\nServer should not fully trust it, but can use it as a hint for validation/logging.",
                    "type": "string"
                },
                "file_size": {
                    "description": "FileSize is the expected file size in bytes; optional.\nUsed for quota/limit checks and audit; client may omit when unknown.",
                    "type": "integer"
                },
                "sha256": {
                    "description": "SHA256 is the hex-encoded sha256 of the file; optional.\nUsed for deduplication/audit; server may validate it later during upload-complete.",
                    "type": "string"
                },
                "source_asset_id": {
                    "description": "SourceAssetID links a preview product to its main asset; only meaningful when variant=preview.",
                    "type": "integer"
                },
                "type": {
                    "description": "Type is the media asset type (video/audio/image).\nUsed to decide processing pipeline and validation rules; required.",
                    "type": "string"
                },
                "variant": {
                    "description": "Variant indicates whether this asset is a main or preview product.\nAllowed: main/preview; default is main.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.MediaAssetVariant"
                        }
                    ]
                }
            }
        },
        "dto.AdminMediaAssetUploadInitResponse": {
            "type": "object",
            "properties": {
                "asset_id": {
                    "description": "AssetID is the created media asset id.",
                    "type": "integer"
                },
                "bucket": {
                    "description": "Bucket is the target bucket/container; for debugging/audit (may be empty in stub mode).",
                    "type": "string"
                },
                "expires_at": {
                    "description": "ExpiresAt indicates when UploadURL/FormFields expire; optional.",
                    "type": "string"
                },
                "form_fields": {
                    "description": "FormFields are form fields required for multipart form upload (S3 POST policy); optional.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "headers": {
                    "description": "Headers are additional headers required for upload (e.g. signed headers); optional.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "object_key": {
                    "description": "ObjectKey is the server-generated object key/path; client must NOT choose it.",
                    "type": "string"
                },
                "provider": {
                    "description": "Provider is the storage provider identifier (e.g. s3/minio/oss/local); for debugging/audit.",
                    "type": "string"
                },
                "upload_url": {
                    "description": "UploadURL is the URL the client should upload to (signed URL or service endpoint).",
                    "type": "string"
                }
            }
        },
        "dto.AdminOrderDetail": {
            "type": "object",
            "properties": {
                "order": {
                    "description": "Order is the order with items preloaded.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.Order"
                        }
                    ]
                }
            }
        },
        "dto.AdminOrderExportResponse": {
            "type": "object",
            "properties": {
                "content_type": {
                    "description": "ContentType 内容类型：当前固定为 text/csv。",
                    "type": "string"
                },
                "csv": {
                    "description": "CSV CSV 文本内容：UTF-8 编码，包含表头与数据行；前端可直接下载为文件。",
                    "type": "string"
                },
                "filename": {
                    "description": "Filename 建议文件名：前端可用于下载时的默认文件名。",
                    "type": "string"
                }
            }
        },
        "dto.AdminOrderRefundForm": {
            "type": "object",
            "properties": {
                "force": {
                    "description": "Force indicates bypassing the default refund window check (paid_at + 24h).\n强制退款：true 表示绕过默认退款时间窗限制（需审计）。",
                    "type": "boolean"
                },
                "idempotency_key": {
                    "description": "IdempotencyKey ensures refund request is processed at most once.\n幂等键：同一笔退款重复请求时返回一致结果，避免重复退款/重复回滚。",
                    "type": "string"
                },
                "reason": {
                    "description": "Reason is the human-readable refund reason used for audit.\n退款原因：建议必填（由业务侧校验）；用于审计与追责。",
                    "type": "string"
                }
            }
        },
        "dto.AdminTenantInviteCreateForm": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "Code 邀请码（可选）：为空时由后端生成；建议只包含数字/字母，便于人工输入。",
                    "type": "string"
                },
                "expires_at": {
                    "description": "ExpiresAt 过期时间（可选）：为空表示不过期；到期后不可再使用。",
                    "type": "string"
                },
                "max_uses": {
                    "description": "MaxUses 最大可使用次数（可选）：0 表示不限次数；大于 0 时用尽后自动失效。",
                    "type": "integer"
                },
                "remark": {
                    "description": "Remark 备注（可选）：用于审计记录生成目的/投放渠道等。",
                    "type": "string"
                }
            }
        },
        "dto.AdminTenantInviteDisableForm": {
            "type": "object",
            "properties": {
                "reason": {
                    "description": "Reason 禁用原因（可选）：用于审计与追溯。",
                    "type": "string"
                }
            }
        },
        "dto.AdminTenantJoinRequestDecideForm": {
            "type": "object",
            "properties": {
                "reason": {
                    "description": "Reason 审核说明（可选）：用于审计记录通过/拒绝原因。",
                    "type": "string"
                }
            }
        },
        "dto.AdminTenantUserItem": {
            "type": "object",
            "properties": {
                "tenant_user": {
                    "description": "TenantUser 租户成员关系记录。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.TenantUser"
                        }
                    ]
                },
                "user": {
                    "description": "User 用户基础信息（用于展示 username 等）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.User"
                        }
                    ]
                }
            }
        },
        "dto.AdminTenantUserJoinResponse": {
            "type": "object",
            "properties": {
                "tenant_user": {
                    "description": "TenantUser 租户成员关系记录。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.TenantUser"
                        }
                    ]
                }
            }
        },
        "dto.AdminTenantUserRoleUpdateForm": {
            "type": "object",
            "properties": {
                "role": {
                    "description": "Role 角色：member/tenant_admin。",
                    "type": "string"
                }
            }
        },
        "dto.ContentAssetAttachForm": {
            "type": "object",
            "properties": {
                "asset_id": {
                    "description": "AssetID is the media asset id to attach.",
                    "type": "integer"
                },
                "role": {
                    "description": "Role indicates how this asset is used (main/cover/preview).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentAssetRole"
                        }
                    ]
                },
                "sort": {
                    "description": "Sort controls ordering under the same role.",
                    "type": "integer"
                }
            }
        },
        "dto.ContentAssetsResponse": {
            "type": "object",
            "properties": {
                "assets": {
                    "description": "Assets is the list of playable assets for the requested role (preview/main).",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ContentPlayableAsset"
                    }
                },
                "content": {
                    "description": "Content is the content entity.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.Content"
                        }
                    ]
                },
                "preview_seconds": {
                    "description": "PreviewSeconds indicates the max preview duration (only meaningful for preview response).",
                    "type": "integer"
                }
            }
        },
        "dto.ContentCreateForm": {
            "type": "object",
            "properties": {
                "description": {
                    "description": "Description is the content description.",
                    "type": "string"
                },
                "preview_seconds": {
                    "description": "PreviewSeconds controls preview duration (defaults to 60 when omitted).",
                    "type": "integer"
                },
                "title": {
                    "description": "Title is the content title.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Visibility controls who can view the content detail (main assets still require free/purchase).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentVisibility"
                        }
                    ]
                }
            }
        },
        "dto.ContentDetail": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content is the content entity.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.Content"
                        }
                    ]
                },
                "has_access": {
                    "description": "HasAccess indicates whether current user can access main assets (free/owner/purchased).",
                    "type": "boolean"
                },
                "price": {
                    "description": "Price is the current price settings for the content (may be nil if not set).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ContentPrice"
                        }
                    ]
                }
            }
        },
        "dto.ContentItem": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content is the content entity.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.Content"
                        }
                    ]
                },
                "has_access": {
                    "description": "HasAccess indicates whether current user can access main assets (free/owner/purchased).",
                    "type": "boolean"
                },
                "price": {
                    "description": "Price is the current price settings for the content (may be nil if not set).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ContentPrice"
                        }
                    ]
                }
            }
        },
        "dto.ContentPlayableAsset": {
            "type": "object",
            "properties": {
                "asset_id": {
                    "type": "integer"
                },
                "expires_at": {
                    "description": "ExpiresAt indicates when PlayURL/token expires; optional.",
                    "type": "string"
                },
                "meta": {
                    "description": "Meta is a display-safe whitelist (currently passthrough JSON); optional.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "play_url": {
                    "description": "PlayURL is a short-lived URL; do NOT expose bucket/object_key directly.",
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/consts.MediaAssetType"
                }
            }
        },
        "dto.ContentPriceUpsertForm": {
            "type": "object",
            "properties": {
                "currency": {
                    "description": "Currency is fixed to CNY for now.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.Currency"
                        }
                    ]
                },
                "discount_end_at": {
                    "description": "DiscountEndAt disables discount after this time (optional).",
                    "type": "string"
                },
                "discount_start_at": {
                    "description": "DiscountStartAt enables discount from this time (optional).",
                    "type": "string"
                },
                "discount_type": {
                    "description": "DiscountType defines the discount algorithm (none/percent/amount).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.DiscountType"
                        }
                    ]
                },
                "discount_value": {
                    "description": "DiscountValue is interpreted based on DiscountType.",
                    "type": "integer"
                },
                "price_amount": {
                    "description": "PriceAmount is the base price in cents (CNY 分).",
                    "type": "integer"
                }
            }
        },
        "dto.ContentPublishForm": {
            "type": "object",
            "properties": {
                "audio_asset_ids": {
                    "description": "AudioAssetIDs 音频资源 ID 列表：可为空；每个资源必须为 audio/main/ready。",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "cover_asset_ids": {
                    "description": "CoverAssetIDs 展示图（封面图）资源 ID 列表：1-3 张；每个资源必须为 image/main/ready。",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "currency": {
                    "description": "Currency 币种：当前固定为 CNY；可不传（后端默认 CNY）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.Currency"
                        }
                    ]
                },
                "detail": {
                    "description": "Detail 详细：用于详情页的长文本；可选；当非空时视为“文字内容”类型存在。",
                    "type": "string"
                },
                "image_asset_ids": {
                    "description": "ImageAssetIDs 多图内容资源 ID 列表：可为空；每个资源必须为 image/main/ready；数量 \u003e= 2 时视为“多图内容”类型存在。",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "preview_seconds": {
                    "description": "PreviewSeconds 试看秒数：仅对 preview 资源生效；默认 60；必须为正整数。",
                    "type": "integer"
                },
                "price_amount": {
                    "description": "PriceAmount 价格：单位为分；0 表示免费；必填（前端可默认填 0）。",
                    "type": "integer"
                },
                "summary": {
                    "description": "Summary 简介：用于列表/卡片展示的短文本；可选，建议 \u003c= 256 字符。",
                    "type": "string"
                },
                "tags": {
                    "description": "Tags 标签：用于分类/检索；字符串数组；会做 trim/去重；可为空。",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "title": {
                    "description": "Title 标题：用于列表展示与搜索；必填。",
                    "type": "string"
                },
                "video_asset_ids": {
                    "description": "VideoAssetIDs 视频资源 ID 列表：可为空；每个资源必须为 video/main/ready。",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "visibility": {
                    "description": "Visibility 可见性：控制“详情页”可见范围；默认 tenant_only。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentVisibility"
                        }
                    ]
                }
            }
        },
        "dto.ContentPublishResponse": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content 内容主体（包含标题/简介/详细/状态等）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.Content"
                        }
                    ]
                },
                "content_types": {
                    "description": "ContentTypes 内容类型列表：text/audio/video/image/multi_image（用于前端展示）。",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cover_assets": {
                    "description": "CoverAssets 封面图绑定结果（role=cover）。",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ContentAsset"
                    }
                },
                "main_assets": {
                    "description": "MainAssets 主资源绑定结果（role=main；可能包含音频/视频/图片）。",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.ContentAsset"
                    }
                },
                "price": {
                    "description": "Price 定价信息（单位分）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ContentPrice"
                        }
                    ]
                }
            }
        },
        "dto.ContentUpdateForm": {
            "type": "object",
            "properties": {
                "description": {
                    "description": "Description updates the description when provided.",
                    "type": "string"
                },
                "preview_seconds": {
                    "description": "PreviewSeconds updates preview duration when provided (must be \u003e 0).",
                    "type": "integer"
                },
                "status": {
                    "description": "Status updates the content status when provided (e.g. publish/unpublish).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentStatus"
                        }
                    ]
                },
                "title": {
                    "description": "Title updates the title when provided.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Visibility updates the visibility when provided.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentVisibility"
                        }
                    ]
                }
            }
        },
        "dto.JoinByInviteForm": {
            "type": "object",
            "properties": {
                "invite_code": {
                    "description": "InviteCode 邀请码：由租户管理员生成；用户提交后加入对应租户。",
                    "type": "string"
                }
            }
        },
        "dto.JoinRequestCreateForm": {
            "type": "object",
            "properties": {
                "reason": {
                    "description": "Reason 申请原因（可选）：用于向租户管理员说明申请加入的目的。",
                    "type": "string"
                }
            }
        },
        "dto.MeBalanceResponse": {
            "type": "object",
            "properties": {
                "balance": {
                    "description": "Balance 可用余额：可用于购买/消费。",
                    "type": "integer"
                },
                "balance_frozen": {
                    "description": "BalanceFrozen 冻结余额：用于下单冻结/争议期等。",
                    "type": "integer"
                },
                "currency": {
                    "description": "Currency 币种：当前固定 CNY（金额单位为分）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.Currency"
                        }
                    ]
                },
                "updated_at": {
                    "description": "UpdatedAt 更新时间：余额变更时更新。",
                    "type": "string"
                }
            }
        },
        "dto.MyLedgerItem": {
            "type": "object",
            "properties": {
                "ledger": {
                    "description": "Ledger 流水记录（租户内隔离）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.TenantLedger"
                        }
                    ]
                },
                "type_description": {
                    "description": "TypeDescription 流水类型中文说明（用于前端展示）。",
                    "type": "string"
                }
            }
        },
        "dto.MyTenantItem": {
            "type": "object",
            "properties": {
                "is_owner": {
                    "description": "IsOwner 是否为租户Owner（tenants.user_id == 当前用户）。\n说明：Owner 通常也在 tenant_users 里具备 tenant_admin 角色，但此字段更直观。",
                    "type": "boolean"
                },
                "joined_at": {
                    "description": "JoinedAt 加入租户时间（tenant_users.created_at）。",
                    "type": "string"
                },
                "member_roles": {
                    "description": "MemberRoles 当前用户在该租户下的角色（tenant_admin/member 等）。",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/consts.TenantUserRole"
                    }
                },
                "member_status": {
                    "description": "MemberStatus 当前用户在该租户下的成员状态。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.UserStatus"
                        }
                    ]
                },
                "tenant_code": {
                    "description": "TenantCode 租户Code（路由使用：/t/:tenantCode/...）。",
                    "type": "string"
                },
                "tenant_id": {
                    "description": "TenantID 租户ID（数值型主键）。",
                    "type": "integer"
                },
                "tenant_name": {
                    "description": "TenantName 租户名称。",
                    "type": "string"
                },
                "tenant_status": {
                    "description": "TenantStatus 租户状态（pending/verified/expired 等）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.TenantStatus"
                        }
                    ]
                },
                "tenant_status_description": {
                    "description": "TenantStatusDescription 租户状态描述（便于前端展示）。",
                    "type": "string"
                }
            }
        },
        "dto.OrderBuyerLite": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "dto.OrderStatisticsResponse": {
            "type": "object",
            "properties": {
                "by_status": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.OrderStatisticsRow"
                    }
                },
                "total_amount_paid_sum": {
                    "type": "integer"
                },
                "total_count": {
                    "type": "integer"
                }
            }
        },
        "dto.OrderStatisticsRow": {
            "type": "object",
            "properties": {
                "amount_paid_sum": {
                    "type": "integer"
                },
                "count": {
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/consts.OrderStatus"
                },
                "status_description": {
                    "type": "string"
                }
            }
        },
        "dto.OrderTenantLite": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "dto.PasswordResetForm": {
            "type": "object",
            "properties": {
                "confirmPassword": {
                    "description": "ConfirmPassword 确认新密码；必须与 Password 一致。",
                    "type": "string"
                },
                "password": {
                    "description": "Password 新密码（明文）。",
                    "type": "string"
                },
                "resetToken": {
                    "description": "ResetToken 重置令牌；由验证码校验接口返回。",
                    "type": "string"
                }
            }
        },
        "dto.PasswordResetResponse": {
            "type": "object",
            "properties": {
                "ok": {
                    "description": "Ok 是否成功。",
                    "type": "boolean"
                }
            }
        },
        "dto.PasswordResetSendSMSForm": {
            "type": "object",
            "properties": {
                "phone": {
                    "description": "Phone 手机号；当前版本将其作为用户名使用（users.username）。",
                    "type": "string"
                }
            }
        },
        "dto.PasswordResetSendSMSResponse": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "Code 验证码（预留：当前用于前端弹窗展示；正式接入短信后应移除/仅在开发环境返回）。",
                    "type": "string"
                },
                "nextSendSeconds": {
                    "description": "NextSendSeconds 下次可发送剩余秒数（用于前端 60s 倒计时）。",
                    "type": "integer"
                }
            }
        },
        "dto.PasswordResetVerifyForm": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "Code 短信验证码。",
                    "type": "string"
                },
                "phone": {
                    "description": "Phone 手机号。",
                    "type": "string"
                }
            }
        },
        "dto.PasswordResetVerifyResponse": {
            "type": "object",
            "properties": {
                "resetToken": {
                    "description": "ResetToken 重置令牌；验证码校验通过后，用该令牌提交新密码。",
                    "type": "string"
                }
            }
        },
        "dto.PurchaseContentForm": {
            "type": "object",
            "properties": {
                "idempotency_key": {
                    "description": "IdempotencyKey is used to ensure the purchase request is processed at most once.\n建议由客户端生成并保持稳定：同一笔购买重复请求时返回相同结果，避免重复扣款/重复下单。",
                    "type": "string"
                }
            }
        },
        "dto.PurchaseContentResponse": {
            "type": "object",
            "properties": {
                "access": {
                    "description": "Access is the content access record after purchase grant.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ContentAccess"
                        }
                    ]
                },
                "amount_paid": {
                    "description": "AmountPaid is the final paid amount in cents (CNY 分).",
                    "type": "integer"
                },
                "item": {
                    "description": "Item is the single order item of this purchase (current implementation is 1 order -\u003e 1 content).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.OrderItem"
                        }
                    ]
                },
                "order": {
                    "description": "Order is the created or existing order record (may be nil for owner/free-path without order).",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.Order"
                        }
                    ]
                }
            }
        },
        "dto.RegisterForm": {
            "type": "object",
            "properties": {
                "confirmPassword": {
                    "description": "ConfirmPassword 确认密码；必须与 Password 一致，避免误输入导致无法登录。",
                    "type": "string"
                },
                "password": {
                    "description": "Password 明文密码；后端会在创建用户时自动加密（bcrypt）。",
                    "type": "string"
                },
                "username": {
                    "description": "Username 用户名；需全局唯一（users.username）；建议仅允许字母/数字/下划线，且长度在合理范围内。",
                    "type": "string"
                },
                "verifyCode": {
                    "description": "VerifyCode 验证码（预留字段）；当前版本仅透传/占位，不做后端校验。",
                    "type": "string"
                }
            }
        },
        "dto.SuperContentItem": {
            "type": "object",
            "properties": {
                "content": {
                    "$ref": "#/definitions/models.Content"
                },
                "owner": {
                    "$ref": "#/definitions/dto.SuperUserLite"
                },
                "price": {
                    "$ref": "#/definitions/models.ContentPrice"
                },
                "status_description": {
                    "type": "string"
                },
                "tenant": {
                    "$ref": "#/definitions/dto.SuperContentTenantLite"
                },
                "visibility_description": {
                    "type": "string"
                }
            }
        },
        "dto.SuperContentTenantLite": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "dto.SuperOrderDetail": {
            "type": "object",
            "properties": {
                "buyer": {
                    "$ref": "#/definitions/dto.OrderBuyerLite"
                },
                "order": {
                    "$ref": "#/definitions/models.Order"
                },
                "tenant": {
                    "$ref": "#/definitions/dto.OrderTenantLite"
                }
            }
        },
        "dto.SuperOrderItem": {
            "type": "object",
            "properties": {
                "amount_discount": {
                    "type": "integer"
                },
                "amount_original": {
                    "type": "integer"
                },
                "amount_paid": {
                    "type": "integer"
                },
                "buyer": {
                    "$ref": "#/definitions/dto.OrderBuyerLite"
                },
                "created_at": {
                    "type": "string"
                },
                "currency": {
                    "$ref": "#/definitions/consts.Currency"
                },
                "id": {
                    "type": "integer"
                },
                "paid_at": {
                    "type": "string"
                },
                "refunded_at": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/consts.OrderStatus"
                },
                "status_description": {
                    "type": "string"
                },
                "tenant": {
                    "$ref": "#/definitions/dto.OrderTenantLite"
                },
                "type": {
                    "$ref": "#/definitions/consts.OrderType"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "dto.SuperOrderRefundForm": {
            "type": "object",
            "properties": {
                "force": {
                    "description": "Force indicates bypassing the default refund window check (paid_at + 24h).",
                    "type": "boolean"
                },
                "idempotency_key": {
                    "description": "IdempotencyKey ensures refund request is processed at most once.",
                    "type": "string"
                },
                "reason": {
                    "description": "Reason is the human-readable refund reason used for audit.",
                    "type": "string"
                }
            }
        },
        "dto.SuperTenantContentItem": {
            "type": "object",
            "properties": {
                "content": {
                    "$ref": "#/definitions/models.Content"
                },
                "owner": {
                    "$ref": "#/definitions/dto.SuperUserLite"
                },
                "price": {
                    "$ref": "#/definitions/models.ContentPrice"
                },
                "status_description": {
                    "type": "string"
                },
                "visibility_description": {
                    "type": "string"
                }
            }
        },
        "dto.SuperTenantContentStatusUpdateForm": {
            "type": "object",
            "required": [
                "status"
            ],
            "properties": {
                "status": {
                    "description": "Status supports: unpublished (下架) / blocked (封禁)",
                    "enum": [
                        "unpublished",
                        "blocked"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentStatus"
                        }
                    ]
                }
            }
        },
        "dto.SuperTenantUserItem": {
            "type": "object",
            "properties": {
                "tenant_user": {
                    "$ref": "#/definitions/models.TenantUser"
                },
                "user": {
                    "$ref": "#/definitions/dto.SuperUserLite"
                }
            }
        },
        "dto.SuperUserLite": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/consts.Role"
                    }
                },
                "status": {
                    "$ref": "#/definitions/consts.UserStatus"
                },
                "status_description": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "verified_at": {
                    "type": "string"
                }
            }
        },
        "dto.TenantAdminUserLite": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "dto.TenantApplicationResponse": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "description": "CreatedAt 申请创建时间（租户记录创建时间）。",
                    "type": "string"
                },
                "hasApplication": {
                    "description": "HasApplication 是否已提交过申请（或已成为创作者）。",
                    "type": "boolean"
                },
                "status": {
                    "description": "Status 租户状态（pending_verify/verified/banned）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.TenantStatus"
                        }
                    ]
                },
                "statusDescription": {
                    "description": "StatusDescription 状态描述（便于前端展示）。",
                    "type": "string"
                },
                "tenantCode": {
                    "description": "TenantCode 租户 Code。",
                    "type": "string"
                },
                "tenantId": {
                    "description": "TenantID 租户ID。",
                    "type": "integer"
                },
                "tenantName": {
                    "description": "TenantName 租户名称。",
                    "type": "string"
                }
            }
        },
        "dto.TenantApplyForm": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "Code 租户 ID（用于 URL/系统标识）；全局唯一（tenants.code，忽略大小写）。",
                    "type": "string"
                },
                "name": {
                    "description": "Name 租户名称（展示用）。",
                    "type": "string"
                }
            }
        },
        "dto.TenantCreateForm": {
            "type": "object",
            "required": [
                "admin_user_id",
                "code",
                "duration",
                "name"
            ],
            "properties": {
                "admin_user_id": {
                    "type": "integer"
                },
                "code": {
                    "type": "string",
                    "maxLength": 64
                },
                "duration": {
                    "description": "Duration 租户有效期（天），从“创建时刻”起算；与续期接口保持一致。",
                    "type": "integer",
                    "enum": [
                        7,
                        30,
                        90,
                        180,
                        365
                    ]
                },
                "name": {
                    "type": "string",
                    "maxLength": 128
                }
            }
        },
        "dto.TenantExpireUpdateForm": {
            "type": "object",
            "required": [
                "duration"
            ],
            "properties": {
                "duration": {
                    "type": "integer",
                    "enum": [
                        7,
                        30,
                        90,
                        180,
                        365
                    ]
                }
            }
        },
        "dto.TenantItem": {
            "type": "object",
            "properties": {
                "admin_users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TenantAdminUserLite"
                    }
                },
                "code": {
                    "type": "string"
                },
                "config": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "created_at": {
                    "type": "string"
                },
                "expired_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "income_amount_paid_sum": {
                    "description": "IncomeAmountPaidSum 累计收入金额（单位：分，CNY）：按 orders 聚合得到的已支付净收入（不含退款中/已退款订单）。",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "owner": {
                    "$ref": "#/definitions/dto.TenantOwnerUserLite"
                },
                "status": {
                    "$ref": "#/definitions/consts.TenantStatus"
                },
                "status_description": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                },
                "user_count": {
                    "type": "integer"
                },
                "user_id": {
                    "type": "integer"
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.User"
                    }
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "dto.TenantOwnerUserLite": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "dto.TenantStatusUpdateForm": {
            "type": "object",
            "required": [
                "status"
            ],
            "properties": {
                "status": {
                    "enum": [
                        "normal",
                        "disabled"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.TenantStatus"
                        }
                    ]
                }
            }
        },
        "dto.UserItem": {
            "type": "object",
            "properties": {
                "balance": {
                    "type": "integer"
                },
                "balance_frozen": {
                    "type": "integer"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "joined_tenant_count": {
                    "type": "integer"
                },
                "owned_tenant_count": {
                    "type": "integer"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/consts.Role"
                    }
                },
                "status": {
                    "$ref": "#/definitions/consts.UserStatus"
                },
                "status_description": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "verified_at": {
                    "type": "string"
                }
            }
        },
        "dto.UserRolesUpdateForm": {
            "type": "object",
            "required": [
                "roles"
            ],
            "properties": {
                "roles": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "$ref": "#/definitions/consts.Role"
                    }
                }
            }
        },
        "dto.UserStatistics": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/consts.UserStatus"
                },
                "status_description": {
                    "type": "string"
                }
            }
        },
        "dto.UserStatusUpdateForm": {
            "type": "object",
            "required": [
                "status"
            ],
            "properties": {
                "status": {
                    "enum": [
                        "normal",
                        "disabled"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.UserStatus"
                        }
                    ]
                }
            }
        },
        "dto.UserTenantItem": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "expired_at": {
                    "type": "string"
                },
                "joined_at": {
                    "type": "string"
                },
                "member_status": {
                    "$ref": "#/definitions/consts.UserStatus"
                },
                "member_status_description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "owner": {
                    "$ref": "#/definitions/dto.TenantOwnerUserLite"
                },
                "role": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/consts.TenantUserRole"
                    }
                },
                "tenant_id": {
                    "type": "integer"
                },
                "tenant_status": {
                    "$ref": "#/definitions/consts.TenantStatus"
                },
                "tenant_status_description": {
                    "type": "string"
                }
            }
        },
        "gorm.DeletedAt": {
            "type": "object",
            "properties": {
                "time": {
                    "type": "string"
                },
                "valid": {
                    "description": "Valid is true if Time is not NULL",
                    "type": "boolean"
                }
            }
        },
        "models.Content": {
            "type": "object",
            "properties": {
                "created_at": {
                    "description": "创建时间：默认 now()；用于审计与排序",
                    "type": "string"
                },
                "deleted_at": {
                    "description": "软删除时间：非空表示已删除；对外接口需过滤",
                    "allOf": [
                        {
                            "$ref": "#/definitions/gorm.DeletedAt"
                        }
                    ]
                },
                "description": {
                    "description": "描述：用于详情页展示；可为空字符串",
                    "type": "string"
                },
                "id": {
                    "description": "主键ID：自增；用于内容引用",
                    "type": "integer"
                },
                "preview_downloadable": {
                    "description": "试看是否允许下载：默认 false；当前策略固定为不允许下载（仅 streaming）",
                    "type": "boolean"
                },
                "preview_seconds": {
                    "description": "试看秒数：默认 60；只对 preview 资源生效；必须为正整数",
                    "type": "integer"
                },
                "published_at": {
                    "description": "发布时间：首次发布时写入；用于时间窗与排序",
                    "type": "string"
                },
                "status": {
                    "description": "状态：draft/reviewing/published/unpublished/blocked；published 才对外展示",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentStatus"
                        }
                    ]
                },
                "summary": {
                    "description": "简介：用于列表/卡片展示的短文本；建议 \u003c= 256 字符（由业务校验）",
                    "type": "string"
                },
                "tags": {
                    "description": "标签：JSON 数组（字符串列表）；用于分类/检索与聚合展示",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离关键字段；所有查询/写入必须限定 tenant_id",
                    "type": "integer"
                },
                "title": {
                    "description": "标题：用于列表展示与搜索；建议限制长度（由业务校验）",
                    "type": "string"
                },
                "updated_at": {
                    "description": "更新时间：默认 now()；编辑内容时写入",
                    "type": "string"
                },
                "user_id": {
                    "description": "用户ID：内容创建者/发布者；用于权限与审计（例如私有内容仅作者可见）",
                    "type": "integer"
                },
                "visibility": {
                    "description": "可见性：public/tenant_only/private；仅控制详情可见，正片资源仍需按价格/权益校验",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentVisibility"
                        }
                    ]
                }
            }
        },
        "models.ContentAccess": {
            "type": "object",
            "properties": {
                "content_id": {
                    "description": "内容ID：权益对应内容；唯一约束 (tenant_id, user_id, content_id)",
                    "type": "integer"
                },
                "created_at": {
                    "description": "创建时间：默认 now()；用于审计",
                    "type": "string"
                },
                "id": {
                    "description": "主键ID：自增",
                    "type": "integer"
                },
                "order_id": {
                    "description": "订单ID：产生该权益的订单；可为空（例如后台补发/迁移）",
                    "type": "integer"
                },
                "revoked_at": {
                    "description": "撤销时间：当 status=revoked 时写入；用于审计与追责",
                    "type": "string"
                },
                "status": {
                    "description": "权益状态：active/revoked/expired；revoked 表示立即失效（例如退款/违规）",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentAccessStatus"
                        }
                    ]
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离；与内容、用户归属一致",
                    "type": "integer"
                },
                "updated_at": {
                    "description": "更新时间：默认 now()；更新 status 时写入",
                    "type": "string"
                },
                "user_id": {
                    "description": "用户ID：权益所属用户；用于访问校验",
                    "type": "integer"
                }
            }
        },
        "models.ContentAsset": {
            "type": "object",
            "properties": {
                "asset_id": {
                    "description": "资源ID：关联 media_assets.id；用于查询资源归属内容",
                    "type": "integer"
                },
                "content_id": {
                    "description": "内容ID：关联 contents.id；用于查询内容下资源列表",
                    "type": "integer"
                },
                "created_at": {
                    "description": "创建时间：默认 now()；用于审计",
                    "type": "string"
                },
                "id": {
                    "description": "主键ID：自增",
                    "type": "integer"
                },
                "role": {
                    "description": "资源角色：main/cover/preview；preview 必须为独立资源以满足禁下载与防绕过",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ContentAssetRole"
                        }
                    ]
                },
                "sort": {
                    "description": "排序：同一 role 下的展示顺序，数值越小越靠前",
                    "type": "integer"
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离；必须与 content_id、asset_id 所属租户一致",
                    "type": "integer"
                },
                "updated_at": {
                    "description": "更新时间：默认 now()；更新 sort/role 时写入",
                    "type": "string"
                },
                "user_id": {
                    "description": "用户ID：操作人/绑定人；用于审计（通常为租户管理员或作者）",
                    "type": "integer"
                }
            }
        },
        "models.ContentPrice": {
            "type": "object",
            "properties": {
                "content_id": {
                    "description": "内容ID：唯一约束 (tenant_id, content_id)；一个内容在一个租户内仅一份定价",
                    "type": "integer"
                },
                "created_at": {
                    "description": "创建时间：默认 now()；用于审计",
                    "type": "string"
                },
                "currency": {
                    "description": "币种：当前固定 CNY；金额单位为分",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.Currency"
                        }
                    ]
                },
                "discount_end_at": {
                    "description": "折扣结束时间：可为空；为空表示长期有效（由业务逻辑解释）",
                    "type": "string"
                },
                "discount_start_at": {
                    "description": "折扣开始时间：可为空；为空表示立即生效（由业务逻辑解释）",
                    "type": "string"
                },
                "discount_type": {
                    "description": "折扣类型：none/percent/amount；仅影响下单时成交价，需写入订单快照",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.DiscountType"
                        }
                    ]
                },
                "discount_value": {
                    "description": "折扣值：percent=0-100（按业务校验）；amount=分；none 时忽略",
                    "type": "integer"
                },
                "id": {
                    "description": "主键ID：自增",
                    "type": "integer"
                },
                "price_amount": {
                    "description": "基础价格：分；0 表示免费（可直接访问正片资源）",
                    "type": "integer"
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离；与内容归属一致",
                    "type": "integer"
                },
                "updated_at": {
                    "description": "更新时间：默认 now()；更新价格/折扣时写入",
                    "type": "string"
                },
                "user_id": {
                    "description": "用户ID：设置/更新价格的操作人（通常为 tenant_admin）；用于审计",
                    "type": "integer"
                }
            }
        },
        "models.MediaAsset": {
            "type": "object",
            "properties": {
                "bucket": {
                    "description": "存储桶：对象所在 bucket；与 provider 组合确定存储定位",
                    "type": "string"
                },
                "created_at": {
                    "description": "创建时间：默认 now()；用于审计与排序",
                    "type": "string"
                },
                "deleted_at": {
                    "description": "软删除时间：非空表示已删除；对外接口需过滤",
                    "allOf": [
                        {
                            "$ref": "#/definitions/gorm.DeletedAt"
                        }
                    ]
                },
                "id": {
                    "description": "主键ID：自增；仅用于内部关联",
                    "type": "integer"
                },
                "meta": {
                    "description": "元数据：JSON；包含 hash、duration、width、height、bitrate、codec 等；用于展示与计费/风控",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "object_key": {
                    "description": "对象键：对象在 bucket 内的 key；不得暴露可长期复用的直链（通过签名URL/token下发）",
                    "type": "string"
                },
                "provider": {
                    "description": "存储提供方：例如 s3/minio/oss；便于多存储扩展",
                    "type": "string"
                },
                "source_asset_id": {
                    "description": "派生来源资源ID：preview 产物可指向对应 main 资源；用于建立 preview/main 的 1:1 追溯关系",
                    "type": "integer"
                },
                "status": {
                    "description": "处理状态：uploaded/processing/ready/failed/deleted；ready 才可被内容引用对外提供",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.MediaAssetStatus"
                        }
                    ]
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离关键字段；所有查询/写入必须限定 tenant_id",
                    "type": "integer"
                },
                "type": {
                    "description": "资源类型：video/audio/image；决定后续处理流程（转码/缩略图/封面等）",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.MediaAssetType"
                        }
                    ]
                },
                "updated_at": {
                    "description": "更新时间：默认 now()；更新状态/元数据时写入",
                    "type": "string"
                },
                "user_id": {
                    "description": "用户ID：资源上传者；用于审计与权限控制",
                    "type": "integer"
                },
                "variant": {
                    "description": "产物类型：main/preview；用于强制试看资源必须绑定独立产物，避免用正片绕过",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.MediaAssetVariant"
                        }
                    ]
                }
            }
        },
        "models.Order": {
            "type": "object",
            "properties": {
                "amount_discount": {
                    "description": "优惠金额：分；amount_paid = amount_original - amount_discount（下单时快照）",
                    "type": "integer"
                },
                "amount_original": {
                    "description": "原价金额：分；未折扣前金额（用于展示与对账）",
                    "type": "integer"
                },
                "amount_paid": {
                    "description": "实付金额：分；从租户内余额扣款的金额（下单时快照）",
                    "type": "integer"
                },
                "created_at": {
                    "description": "创建时间：默认 now()；用于审计与排序",
                    "type": "string"
                },
                "currency": {
                    "description": "币种：当前固定 CNY；金额单位为分",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.Currency"
                        }
                    ]
                },
                "id": {
                    "description": "主键ID：自增；用于关联订单明细、账本流水、权益等",
                    "type": "integer"
                },
                "idempotency_key": {
                    "description": "幂等键：同一租户同一用户同一业务请求可用；用于防重复下单/重复扣款（建议由客户端生成）",
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.OrderItem"
                    }
                },
                "paid_at": {
                    "description": "支付/扣款完成时间：余额支付在 debit_purchase 成功后写入",
                    "type": "string"
                },
                "refund_forced": {
                    "description": "是否强制退款：true 表示租户管理侧绕过时间窗执行退款（需审计）",
                    "type": "boolean"
                },
                "refund_operator_user_id": {
                    "description": "退款操作人用户ID：租户管理员/系统；用于审计与追责",
                    "type": "integer"
                },
                "refund_reason": {
                    "description": "退款原因：后台/用户发起退款的原因说明；用于审计",
                    "type": "string"
                },
                "refunded_at": {
                    "description": "退款完成时间：退款落账成功后写入",
                    "type": "string"
                },
                "snapshot": {
                    "description": "订单快照：JSON；建议包含 content 标题/定价/折扣、请求来源等，避免改价影响历史展示",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.JSONType-fields_OrdersSnapshot"
                        }
                    ]
                },
                "status": {
                    "description": "订单状态：created/paid/refunding/refunded/canceled/failed；状态变更需与账本/权益保持一致",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.OrderStatus"
                        }
                    ]
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离关键字段；所有查询/写入必须限定 tenant_id",
                    "type": "integer"
                },
                "type": {
                    "description": "订单类型：content_purchase（购买内容）等；当前默认 content_purchase",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.OrderType"
                        }
                    ]
                },
                "updated_at": {
                    "description": "更新时间：默认 now()；状态变更/退款写入时更新",
                    "type": "string"
                },
                "user_id": {
                    "description": "用户ID：下单用户（buyer）；余额扣款与权益归属以该 user_id 为准",
                    "type": "integer"
                }
            }
        },
        "models.OrderItem": {
            "type": "object",
            "properties": {
                "amount_paid": {
                    "description": "该行实付金额：分；通常等于订单 amount_paid（单内容场景）",
                    "type": "integer"
                },
                "content": {
                    "$ref": "#/definitions/models.Content"
                },
                "content_id": {
                    "description": "内容ID：关联 contents.id；用于生成/撤销 content_access",
                    "type": "integer"
                },
                "content_user_id": {
                    "description": "内容作者用户ID：用于后续分成/对账扩展；当前可为 0 或写入内容创建者",
                    "type": "integer"
                },
                "created_at": {
                    "description": "创建时间：默认 now()",
                    "type": "string"
                },
                "id": {
                    "description": "主键ID：自增",
                    "type": "integer"
                },
                "order": {
                    "$ref": "#/definitions/models.Order"
                },
                "order_id": {
                    "description": "订单ID：关联 orders.id；用于聚合订单明细",
                    "type": "integer"
                },
                "snapshot": {
                    "description": "内容快照：JSON；建议包含 title/price/discount 等，用于历史展示与审计",
                    "allOf": [
                        {
                            "$ref": "#/definitions/types.JSONType-fields_OrderItemsSnapshot"
                        }
                    ]
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离关键字段；必须与 orders.tenant_id 一致",
                    "type": "integer"
                },
                "updated_at": {
                    "description": "更新时间：默认 now()",
                    "type": "string"
                },
                "user_id": {
                    "description": "用户ID：下单用户（buyer）；冗余字段用于查询加速与审计",
                    "type": "integer"
                }
            }
        },
        "models.Tenant": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "config": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "created_at": {
                    "type": "string"
                },
                "expired_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/consts.TenantStatus"
                },
                "updated_at": {
                    "type": "string"
                },
                "user_id": {
                    "type": "integer"
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.User"
                    }
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "models.TenantInvite": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "邀请码：用户加入租户时提交；同一租户内唯一",
                    "type": "string"
                },
                "created_at": {
                    "description": "创建时间：默认 now()",
                    "type": "string"
                },
                "disabled_at": {
                    "description": "禁用时间：租户管理员禁用该邀请的时间（UTC）",
                    "type": "string"
                },
                "disabled_operator_user_id": {
                    "description": "禁用操作人用户ID：租户管理员（审计用）",
                    "type": "integer"
                },
                "expires_at": {
                    "description": "过期时间：到期后不可再使用（UTC）；为空表示不过期",
                    "type": "string"
                },
                "id": {
                    "description": "主键ID：自增",
                    "type": "integer"
                },
                "max_uses": {
                    "description": "最大可使用次数：0 表示不限制；\u003e0 时 used_count 达到该值后视为失效",
                    "type": "integer"
                },
                "remark": {
                    "description": "备注：生成/禁用原因等（审计用）",
                    "type": "string"
                },
                "status": {
                    "description": "邀请状态：active/disabled/expired；expired 也可由 expires_at 推导，业务侧需保持一致",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.TenantInviteStatus"
                        }
                    ]
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离关键字段；所有查询/写入必须限定 tenant_id",
                    "type": "integer"
                },
                "updated_at": {
                    "description": "更新时间：默认 now()",
                    "type": "string"
                },
                "used_count": {
                    "description": "已使用次数：每次成功加入时 +1；需事务保证并发下不超发",
                    "type": "integer"
                },
                "user_id": {
                    "description": "创建人用户ID：生成邀请码的租户管理员（审计用）",
                    "type": "integer"
                }
            }
        },
        "models.TenantJoinRequest": {
            "type": "object",
            "properties": {
                "created_at": {
                    "description": "创建时间：默认 now()",
                    "type": "string"
                },
                "decided_at": {
                    "description": "处理时间：审核通过/拒绝时记录（UTC）",
                    "type": "string"
                },
                "decided_operator_user_id": {
                    "description": "处理人用户ID：租户管理员（审计用）",
                    "type": "integer"
                },
                "decided_reason": {
                    "description": "处理说明：管理员通过/拒绝的原因（可选，审计用）",
                    "type": "string"
                },
                "id": {
                    "description": "主键ID：自增",
                    "type": "integer"
                },
                "reason": {
                    "description": "申请原因：用户填写的加入说明（可选）",
                    "type": "string"
                },
                "status": {
                    "description": "申请状态：pending/approved/rejected；状态变更需记录 decided_at 与 decided_operator_user_id",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.TenantJoinRequestStatus"
                        }
                    ]
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离关键字段；所有查询/写入必须限定 tenant_id",
                    "type": "integer"
                },
                "updated_at": {
                    "description": "更新时间：默认 now()",
                    "type": "string"
                },
                "user_id": {
                    "description": "申请人用户ID：发起加入申请的用户",
                    "type": "integer"
                }
            }
        },
        "models.TenantLedger": {
            "type": "object",
            "properties": {
                "amount": {
                    "description": "流水金额：分/最小货币单位；通常为正数，方向由 type 决定（由业务层约束）",
                    "type": "integer"
                },
                "balance_after": {
                    "description": "变更后可用余额：用于审计与对账回放",
                    "type": "integer"
                },
                "balance_before": {
                    "description": "变更前可用余额：用于审计与对账回放",
                    "type": "integer"
                },
                "biz_ref_id": {
                    "description": "业务引用ID：与 biz_ref_type 配合使用（例如 orders.id）；用于对账与审计",
                    "type": "integer"
                },
                "biz_ref_type": {
                    "description": "业务引用类型：order/refund/etc；与 biz_ref_id 组成可选的结构化幂等/追溯键",
                    "type": "string"
                },
                "created_at": {
                    "description": "创建时间：默认 now()",
                    "type": "string"
                },
                "frozen_after": {
                    "description": "变更后冻结余额：用于审计与对账回放",
                    "type": "integer"
                },
                "frozen_before": {
                    "description": "变更前冻结余额：用于审计与对账回放",
                    "type": "integer"
                },
                "id": {
                    "description": "主键ID：自增",
                    "type": "integer"
                },
                "idempotency_key": {
                    "description": "幂等键：同一租户同一用户同一业务操作固定；用于防止重复落账（建议由业务层生成）",
                    "type": "string"
                },
                "operator_user_id": {
                    "description": "操作者用户ID：谁触发该流水（admin/buyer/system）；用于审计与追责；可为空（历史数据或无法识别时）",
                    "type": "integer"
                },
                "order": {
                    "$ref": "#/definitions/models.Order"
                },
                "order_id": {
                    "description": "关联订单ID：购买/退款类流水应关联 orders.id；非订单类可为空",
                    "type": "integer"
                },
                "remark": {
                    "description": "备注：业务说明/后台操作原因等；用于审计",
                    "type": "string"
                },
                "tenant_id": {
                    "description": "租户ID：多租户隔离关键字段；必须与 tenant_users.tenant_id 一致",
                    "type": "integer"
                },
                "type": {
                    "description": "流水类型：debit_purchase/credit_refund/freeze/unfreeze/adjustment；不同类型决定余额/冻结余额的变更方向",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.TenantLedgerType"
                        }
                    ]
                },
                "updated_at": {
                    "description": "更新时间：默认 now()",
                    "type": "string"
                },
                "user_id": {
                    "description": "用户ID：余额账户归属用户；对应 tenant_users.user_id",
                    "type": "integer"
                }
            }
        },
        "models.TenantUser": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "role": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/consts.TenantUserRole"
                    }
                },
                "status": {
                    "$ref": "#/definitions/consts.UserStatus"
                },
                "tenant_id": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string"
                },
                "user_id": {
                    "type": "integer"
                }
            }
        },
        "models.User": {
            "type": "object",
            "properties": {
                "balance": {
                    "description": "全局可用余额：分/最小货币单位；用户在所有已加入租户内共享该余额；默认 0",
                    "type": "integer"
                },
                "balance_frozen": {
                    "description": "全局冻结余额：分/最小货币单位；用于下单冻结等；默认 0",
                    "type": "integer"
                },
                "created_at": {
                    "type": "string"
                },
                "deleted_at": {
                    "$ref": "#/definitions/gorm.DeletedAt"
                },
                "id": {
                    "type": "integer"
                },
                "metas": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "owned": {
                    "$ref": "#/definitions/models.Tenant"
                },
                "password": {
                    "type": "string"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/consts.Role"
                    }
                },
                "status": {
                    "$ref": "#/definitions/consts.UserStatus"
                },
                "tenants": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.Tenant"
                    }
                },
                "updated_at": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "verified_at": {
                    "type": "string"
                }
            }
        },
        "quyun_v2_app_http_super_dto.LoginForm": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "quyun_v2_app_http_super_dto.LoginResponse": {
            "type": "object",
            "properties": {
                "token": {
                    "type": "string"
                }
            }
        },
        "quyun_v2_app_http_tenant_dto.MeResponse": {
            "type": "object",
            "properties": {
                "tenant": {
                    "description": "Tenant is the resolved tenant by ` + "`" + `tenantCode` + "`" + `.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.Tenant"
                        }
                    ]
                },
                "tenant_user": {
                    "description": "TenantUser is the membership record of the authenticated user within the tenant.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.TenantUser"
                        }
                    ]
                },
                "user": {
                    "description": "User is the authenticated user derived from JWT ` + "`" + `user_id` + "`" + `.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.User"
                        }
                    ]
                }
            }
        },
        "quyun_v2_app_http_web_dto.LoginForm": {
            "type": "object",
            "properties": {
                "password": {
                    "description": "Password 明文密码；后端会与 users.password 的 bcrypt hash 做比对。",
                    "type": "string"
                },
                "username": {
                    "description": "Username 用户名；必须与数据库 users.username 精确匹配。",
                    "type": "string"
                }
            }
        },
        "quyun_v2_app_http_web_dto.LoginResponse": {
            "type": "object",
            "properties": {
                "token": {
                    "description": "Token JWT 访问令牌；前端应以 ` + "`" + `Authorization: Bearer \u003ctoken\u003e` + "`" + ` 方式携带。",
                    "type": "string"
                }
            }
        },
        "quyun_v2_app_http_web_dto.MeResponse": {
            "type": "object",
            "properties": {
                "created_at": {
                    "description": "CreatedAt 用户创建时间。",
                    "type": "string"
                },
                "id": {
                    "description": "ID 用户ID（全局唯一）。",
                    "type": "integer"
                },
                "roles": {
                    "description": "Roles 用户全局角色数组（如 user/super_admin 等）。",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/consts.Role"
                    }
                },
                "status": {
                    "description": "Status 用户状态（active/verified/banned 等）。",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.UserStatus"
                        }
                    ]
                },
                "status_description": {
                    "description": "StatusDescription 用户状态描述（便于前端展示）。",
                    "type": "string"
                },
                "updated_at": {
                    "description": "UpdatedAt 用户更新时间。",
                    "type": "string"
                },
                "username": {
                    "description": "Username 用户名。",
                    "type": "string"
                }
            }
        },
        "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"
                }
            }
        },
        "types.JSONType-fields_OrderItemsSnapshot": {
            "type": "object"
        },
        "types.JSONType-fields_OrdersSnapshot": {
            "type": "object"
        }
    },
    "securityDefinitions": {
        "BasicAuth": {
            "type": "basic"
        }
    },
    "externalDocs": {
        "description": "OpenAPI",
        "url": "https://swagger.io/resources/open-api/"
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "1.0",
	Host:             "localhost:8080",
	BasePath:         "/",
	Schemes:          []string{},
	Title:            "ApiDoc",
	Description:      "Multi-tenant media platform backend API.",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
