- route definition
- Url: /api/v1/feedback
- Method: GET
- Request:
FeedbackListRequest - Response:
FeedbackListResponse
- request definition
type FeedbackListRequest struct {
Page int `form:"page,optional,default=1"`
PageSize int `form:"pageSize,optional,default=20"`
Status string `form:"status,optional"`
Category string `form:"category,optional"`
GameId string `form:"gameId,optional"`
}
- response definition
type FeedbackListResponse struct {
Items []Feedback `json:"items"`
Total int64 `json:"total"`
Page int `json:"page"`
Size int `json:"pageSize"`
}
- route definition
- Url: /api/v1/feedback
- Method: POST
- Request:
FeedbackCreateRequest - Response:
FeedbackDetailResponse
- request definition
type FeedbackCreateRequest struct {
PlayerId string `json:"playerId,optional"`
Contact string `json:"contact"`
Content string `json:"content"`
Category string `json:"category"`
Rating int `json:"rating,optional"`
Attach string `json:"attach,optional"`
GameId string `json:"gameId,optional"`
Env string `json:"env,optional"`
}
- response definition
type FeedbackDetailResponse struct {
Id int64 `json:"id"`
PlayerId string `json:"playerId"`
Contact string `json:"contact"`
Content string `json:"content"`
Category string `json:"category"`
Priority string `json:"priority"`
Status string `json:"status"`
Rating int `json:"rating"` // 1-5星
Attach string `json:"attach"` // 附件URL
GameId string `json:"gameId"`
Env string `json:"env"`
Reply string `json:"reply"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
type Feedback struct {
Id int64 `json:"id"`
PlayerId string `json:"playerId"`
Contact string `json:"contact"`
Content string `json:"content"`
Category string `json:"category"`
Priority string `json:"priority"`
Status string `json:"status"`
Rating int `json:"rating"` // 1-5星
Attach string `json:"attach"` // 附件URL
GameId string `json:"gameId"`
Env string `json:"env"`
Reply string `json:"reply"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
- route definition
- Url: /api/v1/feedback/:id
- Method: PUT
- Request:
FeedbackUpdateRequest - Response:
FeedbackDetailResponse
- request definition
type FeedbackUpdateRequest struct {
ID string `path:"id"`
Status string `json:"status,optional"`
Priority string `json:"priority,optional"`
Reply string `json:"reply,optional"`
}
- response definition
type FeedbackDetailResponse struct {
Id int64 `json:"id"`
PlayerId string `json:"playerId"`
Contact string `json:"contact"`
Content string `json:"content"`
Category string `json:"category"`
Priority string `json:"priority"`
Status string `json:"status"`
Rating int `json:"rating"` // 1-5星
Attach string `json:"attach"` // 附件URL
GameId string `json:"gameId"`
Env string `json:"env"`
Reply string `json:"reply"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
type Feedback struct {
Id int64 `json:"id"`
PlayerId string `json:"playerId"`
Contact string `json:"contact"`
Content string `json:"content"`
Category string `json:"category"`
Priority string `json:"priority"`
Status string `json:"status"`
Rating int `json:"rating"` // 1-5星
Attach string `json:"attach"` // 附件URL
GameId string `json:"gameId"`
Env string `json:"env"`
Reply string `json:"reply"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
- route definition
- Url: /api/v1/feedback/:id
- Method: DELETE
- Request:
FeedbackDeleteRequest - Response:
-
- request definition
type FeedbackDeleteRequest struct {
ID string `path:"id"`
}
- response definition
- route definition
- Url: /api/v1/feedback/stats
- Method: GET
- Request:
FeedbackStatsRequest - Response:
FeedbackStatsResponse
- request definition
type FeedbackStatsRequest struct {
GameId string `form:"gameId,optional"`
Days int `form:"days,optional,default=7"`
}
- response definition
type FeedbackStatsResponse struct {
Total int `json:"total"`
ByCategory map[string]int `json:"byCategory"`
ByStatus map[string]int `json:"byStatus"`
AvgRating float64 `json:"avgRating"`
ResponseRate float64 `json:"responseRate"`
}
type FeedbackStats struct {
Total int `json:"total"`
ByCategory map[string]int `json:"byCategory"`
ByStatus map[string]int `json:"byStatus"`
AvgRating float64 `json:"avgRating"`
ResponseRate float64 `json:"responseRate"`
}