package utils

import (
	"errors"
	"strings"
	"time"

	"github.com/tidbcloud/serverless-service/internal/domain/constant"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)

func GetBranchParentId(parentId, clusterId string) (string, error) {
	if parentId == "" {
		return clusterId, nil
	}

	if IsBranch(parentId) {
		return parentId, nil
	} else if parentId == clusterId {
		return parentId, nil
	}

	return "", errors.New("invalid parent id")
}

func IsBranch(id string) bool {
	return strings.HasPrefix(id, constant.BranchIDPrefix)
}

func ConvertTimestamp(ts *timestamppb.Timestamp) *time.Time {
	if ts == nil {
		return nil
	}
	t := ts.AsTime()
	return &t
}
