🎨 重构用户端前端为vue开发,完善基础类和角色相关接口

This commit is contained in:
2026-02-10 21:55:45 +08:00
parent db934ebed7
commit 56e821b222
92 changed files with 18377 additions and 21 deletions

View File

@@ -0,0 +1,79 @@
package response
import (
"git.echol.cn/loser/st/server/model/app"
"time"
)
// CharacterResponse 角色卡响应
type CharacterResponse struct {
ID uint `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Personality string `json:"personality"`
Scenario string `json:"scenario"`
Avatar string `json:"avatar"`
CreatorID *uint `json:"creatorId"`
CreatorName string `json:"creatorName"`
CreatorNotes string `json:"creatorNotes"`
Tags []string `json:"tags"`
IsPublic bool `json:"isPublic"`
Version int `json:"version"`
FirstMessage string `json:"firstMessage"`
ExampleMessages []string `json:"exampleMessages"`
TotalChats int `json:"totalChats"`
TotalLikes int `json:"totalLikes"`
UsageCount int `json:"usageCount"`
FavoriteCount int `json:"favoriteCount"`
TokenCount int `json:"tokenCount"`
IsFavorited bool `json:"isFavorited"` // 当前用户是否收藏
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
// CharacterListResponse 角色卡列表响应
type CharacterListResponse struct {
List []CharacterResponse `json:"list"`
Total int64 `json:"total"`
Page int `json:"page"`
PageSize int `json:"pageSize"`
}
// ToCharacterResponse 转换为角色卡响应
func ToCharacterResponse(character *app.AICharacter, isFavorited bool) CharacterResponse {
// pq.StringArray 可以直接赋值给 []string
tags := []string{}
if character.Tags != nil {
tags = character.Tags
}
exampleMessages := []string{}
if character.ExampleMessages != nil {
exampleMessages = character.ExampleMessages
}
return CharacterResponse{
ID: character.ID,
Name: character.Name,
Description: character.Description,
Personality: character.Personality,
Scenario: character.Scenario,
Avatar: character.Avatar,
CreatorID: character.CreatorID,
CreatorName: character.CreatorName,
CreatorNotes: character.CreatorNotes,
Tags: tags,
IsPublic: character.IsPublic,
Version: character.Version,
FirstMessage: character.FirstMessage,
ExampleMessages: exampleMessages,
TotalChats: character.TotalChats,
TotalLikes: character.TotalLikes,
UsageCount: character.UsageCount,
FavoriteCount: character.FavoriteCount,
TokenCount: character.TokenCount,
IsFavorited: isFavorited,
CreatedAt: character.CreatedAt,
UpdatedAt: character.UpdatedAt,
}
}