feat: 统一字段命名风格,使用下划线格式替代驼峰式命名

This commit is contained in:
2025-12-29 10:20:53 +08:00
parent d482905157
commit 60ff49d4c8
8 changed files with 106 additions and 105 deletions

View File

@@ -24,15 +24,18 @@ components:
message:
type: string
Pagination:
Pager:
type: object
properties:
page:
type: integer
pageSize:
limit:
type: integer
total:
type: integer
items:
type: array
items: {} # Generic placeholder
# --- User Models ---
User:
@@ -67,7 +70,7 @@ components:
points:
type: integer
readOnly: true
isRealNameVerified:
is_real_name_verified:
type: boolean
readOnly: true
@@ -111,17 +114,17 @@ components:
enum: [video, audio, article]
price:
type: number
authorId:
author_id:
type: string
authorName:
author_name:
type: string
authorAvatar:
author_avatar:
type: string
views:
type: integer
likes:
type: integer
isPurchased:
is_purchased:
type: boolean
description: User specific state
@@ -134,7 +137,7 @@ components:
type: string
body:
type: string # HTML/Markdown
mediaUrls:
media_urls:
type: array
items:
type: object
@@ -154,10 +157,10 @@ components:
type: string
beat:
type: string
isLiked:
is_liked:
type: boolean
description: User specific state
isFavorited:
is_favorited:
type: boolean
description: User specific state
@@ -168,19 +171,19 @@ components:
type: string
content:
type: string
userId:
user_id:
type: string
userNickname:
user_nickname:
type: string
userAvatar:
user_avatar:
type: string
createTime:
create_time:
type: string
likes:
type: integer
isLiked:
is_liked:
type: boolean
replyTo:
reply_to:
type: string # Comment ID
# --- Tenant/Creator Public Profile ---
@@ -199,7 +202,7 @@ components:
type: string
description:
type: string
certType:
cert_type:
type: string
enum: [personal, enterprise]
stats:
@@ -211,7 +214,7 @@ components:
type: integer
likes:
type: integer
isFollowing:
is_following:
type: boolean
# --- Order Models ---
@@ -220,10 +223,10 @@ components:
properties:
id:
type: string
createTime:
create_time:
type: string
format: date-time
payTime:
pay_time:
type: string
format: date-time
status:
@@ -237,18 +240,18 @@ components:
type: array
items:
$ref: '#/components/schemas/ContentItem'
tenantId:
tenant_id:
type: string
tenantName:
tenant_name:
type: string
isVirtual:
is_virtual:
type: boolean
# --- Creator Dashboard Models ---
CreatorStats:
type: object
properties:
totalFollowers:
total_followers:
type: object
properties:
value:
@@ -256,16 +259,16 @@ components:
trend:
type: number
description: Percentage change (e.g. 1.2 for +1.2%)
totalRevenue:
total_revenue:
type: object
properties:
value:
type: number
trend:
type: number
pendingRefunds:
pending_refunds:
type: integer
newMessages:
new_messages:
type: integer
PayoutAccount:
@@ -295,7 +298,7 @@ components:
type: string
size:
type: integer
mimeType:
mime_type:
type: string
security:
@@ -367,7 +370,7 @@ paths:
in: query
schema:
type: string
- name: tenantId
- name: tenant_id
in: query
schema:
type: string
@@ -387,14 +390,14 @@ paths:
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ContentItem'
pagination:
$ref: '#/components/schemas/Pagination'
allOf:
- $ref: '#/components/schemas/Pager'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ContentItem'
/contents/{id}:
get:
@@ -433,14 +436,14 @@ paths:
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Comment'
pagination:
$ref: '#/components/schemas/Pagination'
allOf:
- $ref: '#/components/schemas/Pager'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Comment'
post:
summary: Post a comment
requestBody:
@@ -451,7 +454,7 @@ paths:
properties:
content:
type: string
replyTo:
reply_to:
type: string
responses:
'200':
@@ -573,7 +576,7 @@ paths:
properties:
realname:
type: string
idCard:
id_card:
type: string
responses:
'200':
@@ -630,9 +633,9 @@ paths:
schema:
type: object
properties:
payParams:
pay_params:
type: string # QR code or SDK params
orderId:
order_id:
type: string
/me/orders:
@@ -695,7 +698,7 @@ paths:
post:
summary: Add to favorites
parameters:
- name: contentId
- name: content_id
in: query
required: true
schema:
@@ -704,11 +707,11 @@ paths:
'200':
description: Added
/me/favorites/{contentId}:
/me/favorites/{content_id}:
delete:
summary: Remove from favorites
parameters:
- name: contentId
- name: content_id
in: path
required: true
schema:
@@ -731,7 +734,7 @@ paths:
post:
summary: Like content
parameters:
- name: contentId
- name: content_id
in: query
required: true
schema:
@@ -740,11 +743,11 @@ paths:
'200':
description: Liked
/me/likes/{contentId}:
/me/likes/{content_id}:
delete:
summary: Unlike content
parameters:
- name: contentId
- name: content_id
in: path
required: true
schema:
@@ -796,7 +799,7 @@ paths:
schema:
type: object
properties:
contentId:
content_id:
type: string
sku:
type: string
@@ -810,7 +813,7 @@ paths:
schema:
type: object
properties:
orderId:
order_id:
type: string
/orders/{id}/pay:
@@ -838,7 +841,7 @@ paths:
schema:
type: object
properties:
payParams:
pay_params:
type: string
/orders/{id}/status:
@@ -931,7 +934,7 @@ paths:
type: string
price:
type: number
mediaIds:
media_ids:
type: array
items:
type: string
@@ -1093,7 +1096,7 @@ paths:
method:
type: string
enum: [wallet, external]
accountId:
account_id:
type: string # Required if method is external
responses:
'200':
@@ -1122,4 +1125,4 @@ paths:
content:
application/json:
schema:
$ref: '#/components/schemas/UploadResult'
$ref: '#/components/schemas/UploadResult'

View File

@@ -27,7 +27,7 @@ type User struct {
Location *Location `json:"location"`
Balance float64 `json:"balance"`
Points int64 `json:"points"`
IsRealNameVerified bool `json:"isRealNameVerified"`
IsRealNameVerified bool `json:"is_real_name_verified"`
}
type Location struct {

View File

@@ -5,5 +5,5 @@ type UploadResult struct {
URL string `json:"url"`
Filename string `json:"filename"`
Size int64 `json:"size"`
MimeType string `json:"mimeType"`
MimeType string `json:"mime_type"`
}

View File

@@ -1,7 +1,5 @@
package dto
import "quyun/v2/app/requests"
type ContentItem struct {
ID string `json:"id"`
Title string `json:"title"`
@@ -9,22 +7,22 @@ type ContentItem struct {
Genre string `json:"genre"`
Type string `json:"type"` // video, audio, article
Price float64 `json:"price"`
AuthorID string `json:"authorId"`
AuthorName string `json:"authorName"`
AuthorAvatar string `json:"authorAvatar"`
AuthorID string `json:"author_id"`
AuthorName string `json:"author_name"`
AuthorAvatar string `json:"author_avatar"`
Views int `json:"views"`
Likes int `json:"likes"`
IsPurchased bool `json:"isPurchased"`
IsPurchased bool `json:"is_purchased"`
}
type ContentDetail struct {
ContentItem
Description string `json:"description"`
Body string `json:"body"`
MediaUrls []MediaURL `json:"mediaUrls"`
MediaUrls []MediaURL `json:"media_urls"`
Meta Meta `json:"meta"`
IsLiked bool `json:"isLiked"`
IsFavorited bool `json:"isFavorited"`
IsLiked bool `json:"is_liked"`
IsFavorited bool `json:"is_favorited"`
}
type MediaURL struct {
@@ -42,18 +40,18 @@ type Meta struct {
type Comment struct {
ID string `json:"id"`
Content string `json:"content"`
UserID string `json:"userId"`
UserNickname string `json:"userNickname"`
UserAvatar string `json:"userAvatar"`
CreateTime string `json:"createTime"`
UserID string `json:"user_id"`
UserNickname string `json:"user_nickname"`
UserAvatar string `json:"user_avatar"`
CreateTime string `json:"create_time"`
Likes int `json:"likes"`
IsLiked bool `json:"isLiked"`
ReplyTo string `json:"replyTo"`
IsLiked bool `json:"is_liked"`
ReplyTo string `json:"reply_to"`
}
type CommentCreateForm struct {
Content string `json:"content"`
ReplyTo string `json:"replyTo"`
ReplyTo string `json:"reply_to"`
}
type Topic struct {
@@ -66,9 +64,9 @@ type Topic struct {
type ContentPrice struct {
Currency string `json:"currency"`
PriceAmount float64 `json:"priceAmount"`
DiscountType string `json:"discountType"`
DiscountValue float64 `json:"discountValue"`
DiscountStartAt string `json:"discountStartAt"`
DiscountEndAt string `json:"discountEndAt"`
}
PriceAmount float64 `json:"price_amount"`
DiscountType string `json:"discount_type"`
DiscountValue float64 `json:"discount_value"`
DiscountStartAt string `json:"discount_start_at"`
DiscountEndAt string `json:"discount_end_at"`
}

View File

@@ -7,10 +7,10 @@ type ApplyForm struct {
}
type DashboardStats struct {
TotalFollowers IntStatItem `json:"totalFollowers"`
TotalRevenue FloatStatItem `json:"totalRevenue"`
PendingRefunds int `json:"pendingRefunds"`
NewMessages int `json:"newMessages"`
TotalFollowers IntStatItem `json:"total_followers"`
TotalRevenue FloatStatItem `json:"total_revenue"`
PendingRefunds int `json:"pending_refunds"`
NewMessages int `json:"new_messages"`
}
type IntStatItem struct {
@@ -27,14 +27,14 @@ type ContentCreateForm struct {
Title string `json:"title"`
Genre string `json:"genre"`
Price float64 `json:"price"`
MediaIDs []string `json:"mediaIds"`
MediaIDs []string `json:"media_ids"`
}
type ContentUpdateForm struct {
Title string `json:"title"`
Genre string `json:"genre"`
Price float64 `json:"price"`
MediaIDs []string `json:"mediaIds"`
MediaIDs []string `json:"media_ids"`
}
type RefundForm struct {
@@ -61,7 +61,7 @@ type PayoutAccount struct {
type WithdrawForm struct {
Amount float64 `json:"amount"`
Method string `json:"method"` // wallet, external
AccountID string `json:"accountId"`
AccountID string `json:"account_id"`
}
// Re-export or Wrap

View File

@@ -1,13 +1,13 @@
package dto
type OrderCreateForm struct {
ContentID string `json:"contentId"`
ContentID string `json:"content_id"`
Sku string `json:"sku"`
Quantity int `json:"quantity"`
}
type OrderCreateResponse struct {
OrderID string `json:"orderId"`
OrderID string `json:"order_id"`
}
type OrderPayForm struct {
@@ -15,7 +15,7 @@ type OrderPayForm struct {
}
type OrderPayResponse struct {
PayParams string `json:"payParams"`
PayParams string `json:"pay_params"`
}
type OrderStatusResponse struct {

View File

@@ -7,9 +7,9 @@ type TenantProfile struct {
Cover string `json:"cover"`
Bio string `json:"bio"`
Description string `json:"description"`
CertType string `json:"certType"` // personal, enterprise
CertType string `json:"cert_type"` // personal, enterprise
Stats Stats `json:"stats"`
IsFollowing bool `json:"isFollowing"`
IsFollowing bool `json:"is_following"`
}
type Stats struct {

View File

@@ -13,7 +13,7 @@ type UserUpdate struct {
type RealNameForm struct {
Realname string `json:"realname"`
IDCard string `json:"idCard"`
IDCard string `json:"id_card"`
}
type WalletResponse struct {
@@ -35,21 +35,21 @@ type RechargeForm struct {
}
type RechargeResponse struct {
PayParams string `json:"payParams"`
OrderID string `json:"orderId"`
PayParams string `json:"pay_params"`
OrderID string `json:"order_id"`
}
type Order struct {
ID string `json:"id"`
CreateTime string `json:"createTime"`
PayTime string `json:"payTime"`
CreateTime string `json:"create_time"`
PayTime string `json:"pay_time"`
Status string `json:"status"`
Amount float64 `json:"amount"`
Quantity int `json:"quantity"`
Items []ContentItem `json:"items"`
TenantID string `json:"tenantId"`
TenantName string `json:"tenantName"`
IsVirtual bool `json:"isVirtual"`
TenantID string `json:"tenant_id"`
TenantName string `json:"tenant_name"`
IsVirtual bool `json:"is_virtual"`
}
type Notification struct {