package common

import (
	"fmt"
	retry "github.com/avast/retry-go/v4"
)

func ValidateChangefeedState(state, expected string) error {
	if state == expected {
		return nil
	}
	switch state {
	case "CREATE_FAILED", "RUNNING_FAILED", "DELETED":
		return retry.Unrecoverable(fmt.Errorf("changefeed reached terminal state %s", state))
	default:
		return fmt.Errorf("changefeed state is %s", state)
	}
}
