feat: implement new structure

This commit is contained in:
2025-12-29 09:30:49 +08:00
parent 503b15aab7
commit ad52371028
116 changed files with 17579 additions and 1213 deletions

View File

@@ -0,0 +1,77 @@
package dto
type ApplyForm struct {
Name string `json:"name"`
Bio string `json:"bio"`
Avatar string `json:"avatar"`
}
type DashboardStats struct {
TotalFollowers IntStatItem `json:"totalFollowers"`
TotalRevenue FloatStatItem `json:"totalRevenue"`
PendingRefunds int `json:"pendingRefunds"`
NewMessages int `json:"newMessages"`
}
type IntStatItem struct {
Value int `json:"value"`
Trend float64 `json:"trend"`
}
type FloatStatItem struct {
Value float64 `json:"value"`
Trend float64 `json:"trend"`
}
type ContentCreateForm struct {
Title string `json:"title"`
Genre string `json:"genre"`
Price float64 `json:"price"`
MediaIDs []string `json:"mediaIds"`
}
type ContentUpdateForm struct {
Title string `json:"title"`
Genre string `json:"genre"`
Price float64 `json:"price"`
MediaIDs []string `json:"mediaIds"`
}
type RefundForm struct {
Action string `json:"action"` // accept, reject
Reason string `json:"reason"`
}
type Settings struct {
Name string `json:"name"`
Bio string `json:"bio"`
Avatar string `json:"avatar"`
Cover string `json:"cover"`
Description string `json:"description"`
}
type PayoutAccount struct {
ID string `json:"id"`
Type string `json:"type"` // bank, alipay
Name string `json:"name"`
Account string `json:"account"`
Realname string `json:"realname"`
}
type WithdrawForm struct {
Amount float64 `json:"amount"`
Method string `json:"method"` // wallet, external
AccountID string `json:"accountId"`
}
// Re-export or Wrap
// Since ContentItem and Order are in the same package 'dto',
// we don't need type aliases unless we want to rename them.
// If creator.go uses them, it can use dto.ContentItem directly.
// But creator.go is in `v1` (package v1) and imports `dto`.
// So it uses `dto.ContentItem`.
// So we don't need aliases here if the original types are in this package.
// However, if the originals were in `content/dto` and `user/dto` and we moved them to `v1/dto` (this package),
// then we just have them defined in `content.go` (dto) and `user.go` (dto).
// So aliases are not needed if they are in the same package.