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