Files

28 lines
1003 B
Go

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