package dto import ( pbSocial "github.com/topfans/backend/pkg/proto/social" ) // ConvertFriendRequest 转换好友请求数据 func ConvertFriendRequest(req *pbSocial.FriendRequest) map[string]interface{} { if req == nil { return nil } result := map[string]interface{}{ "request_id": req.Id, "from_user_id": req.FromUserId, "to_user_id": req.ToUserId, "star_id": req.StarId, "status": req.Status, "message": req.Message, "created_at": req.CreatedAt, } // 添加可选字段 if req.ProcessedAt > 0 { result["processed_at"] = req.ProcessedAt } if req.ExpiresAt > 0 { result["expires_at"] = req.ExpiresAt } // 添加发送者信息 if req.FromUserNickname != "" { result["from_user_nickname"] = req.FromUserNickname } if req.FromUserAvatar != "" { result["from_user_avatar"] = req.FromUserAvatar } if req.FromUserFanLevel > 0 { result["from_user_fan_level"] = req.FromUserFanLevel } // 添加接收者信息 if req.ToUserNickname != "" { result["to_user_nickname"] = req.ToUserNickname } if req.ToUserAvatar != "" { result["to_user_avatar"] = req.ToUserAvatar } if req.ToUserFanLevel > 0 { result["to_user_fan_level"] = req.ToUserFanLevel } return result } // ConvertFriendship 转换好友关系数据 func ConvertFriendship(friendship *pbSocial.Friendship) map[string]interface{} { if friendship == nil { return nil } result := map[string]interface{}{ "friend_id": friendship.FriendId, "star_id": friendship.StarId, "created_at": friendship.CreatedAt, } // 添加可选字段 if friendship.Remark != "" { result["remark"] = friendship.Remark } // 添加好友信息 if friendship.FriendNickname != "" { result["friend_nickname"] = friendship.FriendNickname } if friendship.FriendAvatar != "" { result["friend_avatar"] = friendship.FriendAvatar } if friendship.FriendFanLevel > 0 { result["friend_fan_level"] = friendship.FriendFanLevel } if friendship.FriendSocial > 0 { result["friend_social"] = friendship.FriendSocial } return result } // ToUserSearchResultDTO 转换粉丝档案搜索结果数据 func ToUserSearchResultDTO(user *pbSocial.FanProfileSearchResult) map[string]interface{} { if user == nil { return nil } result := map[string]interface{}{ "fan_profile_id": user.FanProfileId, "user_id": user.UserId, "nickname": user.Nickname, "avatar": user.Avatar, "fan_level": user.FanLevel, "relationship_status": user.RelationshipStatus, "can_send_request": user.CanSendRequest, } // 添加冷静期结束时间(仅当状态为 rejected 时) if user.CooldownEndsAt > 0 { result["cooldown_ends_at"] = user.CooldownEndsAt } return result } // ToPagedUsersDTO 转换分页用户列表数据 func ToPagedUsersDTO(users []*pbSocial.PagedUser) []map[string]interface{} { if users == nil { return []map[string]interface{}{} } result := make([]map[string]interface{}, 0, len(users)) for _, user := range users { if user != nil { result = append(result, map[string]interface{}{ "user_id": user.UserId, "gallery_owner_id": user.GalleryOwnerId, "nickname": user.Nickname, "level": user.Level, "shared_booth_slots_remaining": user.SharedBoothSlotsRemaining, }) } } return result } // ToRandomUsersDTO 转换随机用户列表数据 func ToRandomUsersDTO(users []*pbSocial.RandomUser) []map[string]interface{} { if users == nil { return []map[string]interface{}{} } result := make([]map[string]interface{}, 0, len(users)) for _, user := range users { if user != nil { result = append(result, map[string]interface{}{ "user_id": user.UserId, "nickname": user.Nickname, }) } } return result }