2026-05-02 13:02:38 +08:00

30 lines
689 B
Go

package service
import (
"context"
"strings"
"hyapp/pkg/xerr"
)
func (s *Service) requireRoomOpenForEntry(ctx context.Context, roomID string) error {
closed, err := s.isRoomClosed(ctx, roomID)
if err != nil || !closed {
return err
}
return xerr.New(xerr.RoomClosed, "room closed")
}
func (s *Service) isRoomClosed(ctx context.Context, roomID string) (bool, error) {
roomMeta, exists, err := s.repository.GetRoomMeta(ctx, roomID)
if err != nil || !exists {
return false, err
}
return isClosedRoomStatus(roomMeta.Status), nil
}
func isClosedRoomStatus(status string) bool {
value := strings.TrimSpace(status)
return value != "" && !strings.EqualFold(value, "active")
}