package useronline

import (
	"errors"
	"strconv"
	"strings"
)

func ParseUserOnlineStatus(payload string) (string, []int32, error) {
	arr := strings.Split(payload, ":")
	if len(arr) == 0 {
		return "", nil, errors.New("invalid data")
	}
	userID := arr[len(arr)-1]
	if userID == "" {
		return "", nil, errors.New("userID is empty")
	}
	platformIDs := make([]int32, len(arr)-1)
	for i := range platformIDs {
		platformID, err := strconv.Atoi(arr[i])
		if err != nil {
			return "", nil, err
		}
		platformIDs[i] = int32(platformID)
	}
	return userID, platformIDs, nil
}