package livechat import ( "context" biz "kra/internal/biz/livechat" "kra/internal/service/dto" ) type Service struct{ uc *biz.Usecase } func NewService(uc *biz.Usecase) *Service { return &Service{uc: uc} } func (s *Service) History(ctx context.Context, roomID uint, limit int) ([]*dto.LiveChatMessageResponse, error) { items, err := s.uc.ListRecent(ctx, roomID, limit) if err != nil { return nil, err } out := make([]*dto.LiveChatMessageResponse, 0, len(items)) for _, item := range items { out = append(out, MessageResponse(item)) } return out, nil } func MessageResponse(item *biz.Message) *dto.LiveChatMessageResponse { return &dto.LiveChatMessageResponse{ID: item.ID, RoomID: item.RoomID, Type: item.Type, UserID: item.UserID, Username: item.Username, Nickname: item.Nickname, Avatar: item.Avatar, Content: item.Content, GiftID: item.GiftID, GiftName: item.GiftName, GiftIcon: item.GiftIcon, Quantity: item.Quantity, DiamondTotal: item.DiamondTotal, CreatedAt: item.CreatedAt} }