<?php

namespace Yajny\Member\FraudDetection\Utils;

use Yajny\Member\FraudDetection\Actions\FraudDetectionActionInterface;
use Yajny\Member\FraudDetection\Actions\MarkAsMerchantActionApplier;
use Yajny\Member\FraudDetection\Exceptions\UnknownActionException;

class FraudDetectionActionsUtil
{
    const MARK_AS_MERCHANT = 'mark_as_merchant';

    public static function getFraudDetectionActions(): array
    {
        return [
            self::MARK_AS_MERCHANT,
        ];
    }

    /**
     * @param string $action
     * @return FraudDetectionActionInterface
     * @throws UnknownActionException
     */
    public static function getFraudDetectionActionClass(string $action): FraudDetectionActionInterface
    {
        switch ($action) {
            case self::MARK_AS_MERCHANT:
                return new MarkAsMerchantActionApplier();
            default:
                throw new UnknownActionException();
        }
    }
}