|
|
@@ -10,31 +10,13 @@ use Illuminate\Validation\Rule;
|
|
|
use Illuminate\View\View;
|
|
|
use Longyi\RewardPoints\Models\RewardActiveRule;
|
|
|
use Longyi\RewardPoints\Repositories\RewardPointRepository;
|
|
|
+use Longyi\RewardPoints\Config\TransactionType;
|
|
|
use Webkul\Admin\Http\Controllers\Controller;
|
|
|
use Webkul\Core\Models\Channel;
|
|
|
use Webkul\Customer\Models\CustomerGroup;
|
|
|
|
|
|
class RuleController extends Controller
|
|
|
{
|
|
|
- /**
|
|
|
- * Transaction type mapping with complete configuration
|
|
|
- */
|
|
|
- private const TRANSACTION_TYPES = [
|
|
|
- 3 => ['name' => 'Order', 'icon' => 'icon-shopping-cart', 'color' => 'blue'],
|
|
|
- 2 => ['name' => 'Registration', 'icon' => 'icon-user', 'color' => 'green'],
|
|
|
- 4 => ['name' => 'Product Review', 'icon' => 'icon-star', 'color' => 'yellow'],
|
|
|
- 9 => ['name' => 'Login', 'icon' => 'icon-calendar', 'color' => 'purple'],
|
|
|
- 5 => ['name' => 'Referral', 'icon' => 'icon-share', 'color' => 'indigo'],
|
|
|
- 6 => ['name' => 'Birthday', 'icon' => 'icon-gift', 'color' => 'pink'],
|
|
|
- 7 => ['name' => 'Share', 'icon' => 'icon-share-alt', 'color' => 'orange'],
|
|
|
- 8 => ['name' => 'Subscribe', 'icon' => 'icon-envelope', 'color' => 'orange'],
|
|
|
- ];
|
|
|
-
|
|
|
- /**
|
|
|
- * Valid transaction type IDs
|
|
|
- */
|
|
|
- private const VALID_TRANSACTION_TYPES = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
-
|
|
|
/**
|
|
|
* Color classes mapping for transaction types
|
|
|
*/
|
|
|
@@ -69,7 +51,7 @@ class RuleController extends Controller
|
|
|
->paginate(15);
|
|
|
|
|
|
$customerGroupsList = $this->getCustomerGroups();
|
|
|
- $transactionTypes = self::TRANSACTION_TYPES;
|
|
|
+ $transactionTypes = TransactionType::getRuleTypes();
|
|
|
$colorClasses = self::COLOR_CLASSES;
|
|
|
|
|
|
$view = $this->_config['view'] ?? 'rewardpoints::admin.rules.index';
|
|
|
@@ -85,7 +67,7 @@ class RuleController extends Controller
|
|
|
$view = $this->_config['view'] ?? 'rewardpoints::admin.rules.create';
|
|
|
|
|
|
return view($view, [
|
|
|
- 'transactionTypes' => self::TRANSACTION_TYPES,
|
|
|
+ 'transactionTypes' => TransactionType::getRuleTypes(),
|
|
|
'storeViews' => $this->getStoreViews(),
|
|
|
'customerGroups' => $this->getCustomerGroups(),
|
|
|
'colorClasses' => self::COLOR_CLASSES,
|
|
|
@@ -121,7 +103,7 @@ class RuleController extends Controller
|
|
|
|
|
|
return view($view, [
|
|
|
'rule' => $rule,
|
|
|
- 'transactionTypes' => self::TRANSACTION_TYPES,
|
|
|
+ 'transactionTypes' => TransactionType::getRuleTypes(),
|
|
|
'storeViews' => $this->getStoreViews(),
|
|
|
'customerGroups' => $this->getCustomerGroups(),
|
|
|
'selectedStoreViewsForSelect' => $selectedStoreViewsForSelect,
|
|
|
@@ -235,7 +217,7 @@ class RuleController extends Controller
|
|
|
{
|
|
|
$rules = [
|
|
|
'rule_name' => 'required|string|max:255',
|
|
|
- 'type_of_transaction' => ['required', 'integer', Rule::in(self::VALID_TRANSACTION_TYPES)],
|
|
|
+ 'type_of_transaction' => ['required', 'integer', Rule::in(array_keys(TransactionType::getRuleTypes()))],
|
|
|
'status' => 'required|boolean',
|
|
|
'enable_different_points_by_group' => 'nullable|boolean',
|
|
|
'expired_day' => 'nullable|integer|min:0',
|
|
|
@@ -254,7 +236,7 @@ class RuleController extends Controller
|
|
|
{
|
|
|
$rules = [
|
|
|
'rule_name' => 'required|string|max:255',
|
|
|
- 'type_of_transaction' => ['required', 'integer', Rule::in(self::VALID_TRANSACTION_TYPES)],
|
|
|
+ 'type_of_transaction' => ['required', 'integer', Rule::in(array_keys(TransactionType::getRuleTypes()))],
|
|
|
'status' => 'required|boolean',
|
|
|
'enable_different_points_by_group' => 'nullable|boolean',
|
|
|
'default_expired' => 'nullable|boolean',
|