package live import ( "context" bizlive "kra/internal/biz/live" "kra/internal/service/dto" ) type StreamService struct{ uc *bizlive.StreamUsecase } func NewStreamService(uc *bizlive.StreamUsecase) *StreamService { return &StreamService{uc: uc} } func (s *StreamService) List(ctx context.Context) ([]*dto.LiveStreamResponse, error) { streams, err := s.uc.List(ctx) if err != nil { return nil, err } result := make([]*dto.LiveStreamResponse, 0, len(streams)) for _, stream := range streams { result = append(result, &dto.LiveStreamResponse{StreamID: stream.StreamID, PublisherOnline: stream.PublisherOnline, SubscriberCount: stream.SubscriberCount}) } return result, nil } func (s *StreamService) Get(ctx context.Context, streamID string) (*dto.LiveStreamResponse, error) { stream, err := s.uc.Get(ctx, streamID) if err != nil { return nil, err } return &dto.LiveStreamResponse{StreamID: stream.StreamID, PublisherOnline: stream.PublisherOnline, SubscriberCount: stream.SubscriberCount}, nil } func (s *StreamService) Like(ctx context.Context, streamID string) (int, error) { return s.uc.Like(ctx, streamID) }