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, } }