Files
quyun-v2/backend/docs/docs.go
2025-12-18 10:27:40 +08:00

1734 lines
56 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs
import "github.com/rogeecn/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"name": "UserName",
"url": "http://www.swagger.io/support",
"email": "support@swagger.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/super/v1/auth/login": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Super"
],
"parameters": [
{
"description": "form",
"name": "form",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.LoginForm"
}
}
],
"responses": {
"200": {
"description": "成功",
"schema": {
"$ref": "#/definitions/dto.LoginResponse"
}
}
}
}
},
"/super/v1/auth/token": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Super"
],
"responses": {
"200": {
"description": "成功",
"schema": {
"$ref": "#/definitions/dto.LoginResponse"
}
}
}
}
},
"/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",
"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": "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"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/requests.Pager"
},
{
"type": "object",
"properties": {
"items": {
"$ref": "#/definitions/dto.TenantItem"
}
}
}
]
}
}
}
}
},
"/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}": {
"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}/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/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",
"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": [
"pending_verify",
"verified",
"banned"
],
"type": "string",
"x-enum-varnames": [
"UserStatusPendingVerify",
"UserStatusVerified",
"UserStatusBanned"
],
"name": "status",
"in": "query"
},
{
"type": "integer",
"name": "tenantID",
"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.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}/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": {}
}
},
"/t/{tenantCode}/v1/admin/contents": {
"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/admin/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/admin/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/admin/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/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/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/dto.MeResponse"
}
}
}
}
}
},
"definitions": {
"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.Role": {
"type": "string",
"enum": [
"user",
"super_admin"
],
"x-enum-varnames": [
"RoleUser",
"RoleSuperAdmin"
]
},
"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.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 media assets for the requested role (preview/main).",
"type": "array",
"items": {
"$ref": "#/definitions/models.MediaAsset"
}
},
"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.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.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.LoginForm": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"dto.LoginResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
}
},
"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"
}
]
}
}
},
"dto.TenantExpireUpdateForm": {
"type": "object",
"required": [
"duration"
],
"properties": {
"duration": {
"type": "integer",
"enum": [
7,
30,
90,
180,
365
]
}
}
},
"dto.TenantItem": {
"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"
},
"status_description": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"user_balance": {
"type": "integer"
},
"user_count": {
"type": "integer"
},
"user_id": {
"type": "integer"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/models.User"
}
},
"uuid": {
"type": "string"
}
}
},
"dto.TenantStatusUpdateForm": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"enum": [
"normal",
"disabled"
],
"allOf": [
{
"$ref": "#/definitions/consts.TenantStatus"
}
]
}
}
},
"dto.UserItem": {
"type": "object",
"properties": {
"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"
},
"status_description": {
"type": "string"
},
"tenants": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Tenant"
}
},
"updated_at": {
"type": "string"
},
"username": {
"type": "string"
},
"verified_at": {
"type": "string"
}
}
},
"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"
}
]
}
}
},
"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": {
"type": "string"
},
"deleted_at": {
"$ref": "#/definitions/gorm.DeletedAt"
},
"description": {
"type": "string"
},
"id": {
"type": "integer"
},
"preview_downloadable": {
"type": "boolean"
},
"preview_seconds": {
"type": "integer"
},
"published_at": {
"type": "string"
},
"status": {
"$ref": "#/definitions/consts.ContentStatus"
},
"tenant_id": {
"type": "integer"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"user_id": {
"type": "integer"
},
"visibility": {
"$ref": "#/definitions/consts.ContentVisibility"
}
}
},
"models.ContentAsset": {
"type": "object",
"properties": {
"asset_id": {
"type": "integer"
},
"content_id": {
"type": "integer"
},
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"role": {
"$ref": "#/definitions/consts.ContentAssetRole"
},
"sort": {
"type": "integer"
},
"tenant_id": {
"type": "integer"
},
"updated_at": {
"type": "string"
},
"user_id": {
"type": "integer"
}
}
},
"models.ContentPrice": {
"type": "object",
"properties": {
"content_id": {
"type": "integer"
},
"created_at": {
"type": "string"
},
"currency": {
"$ref": "#/definitions/consts.Currency"
},
"discount_end_at": {
"type": "string"
},
"discount_start_at": {
"type": "string"
},
"discount_type": {
"$ref": "#/definitions/consts.DiscountType"
},
"discount_value": {
"type": "integer"
},
"id": {
"type": "integer"
},
"price_amount": {
"type": "integer"
},
"tenant_id": {
"type": "integer"
},
"updated_at": {
"type": "string"
},
"user_id": {
"type": "integer"
}
}
},
"models.MediaAsset": {
"type": "object",
"properties": {
"bucket": {
"type": "string"
},
"created_at": {
"type": "string"
},
"deleted_at": {
"$ref": "#/definitions/gorm.DeletedAt"
},
"id": {
"type": "integer"
},
"meta": {
"type": "array",
"items": {
"type": "integer"
}
},
"object_key": {
"type": "string"
},
"provider": {
"type": "string"
},
"status": {
"$ref": "#/definitions/consts.MediaAssetStatus"
},
"tenant_id": {
"type": "integer"
},
"type": {
"$ref": "#/definitions/consts.MediaAssetType"
},
"updated_at": {
"type": "string"
},
"user_id": {
"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.TenantUser": {
"type": "object",
"properties": {
"balance": {
"type": "integer"
},
"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": {
"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"
}
}
},
"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"
}
}
}
},
"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: "/t/{tenantCode}/v1",
Schemes: []string{},
Title: "ApiDoc",
Description: "Multi-tenant media platform backend API.",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}