донат шоп, управление магазином, яндекс метрика

This commit is contained in:
2026-07-19 19:17:29 +04:00
parent 8bf1b852f0
commit df7f98fe8b
48 changed files with 1859 additions and 18 deletions
@@ -0,0 +1,19 @@
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class AdjustBalanceRequest extends FormRequest
{
public function rules(): array
{
return [
'account' => ['required', 'string', 'max:255'],
'direction' => ['required', Rule::in(['credit', 'debit'])],
'amount' => ['required', 'numeric', 'decimal:0,2', 'gt:0', 'max:1000000'],
'reason' => ['required', 'string', 'min:3', 'max:255'],
];
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class SaveShopCategoryRequest extends FormRequest
{
protected function prepareForValidation(): void
{
$this->merge(['enabled' => $this->boolean('enabled')]);
}
public function rules(): array
{
return [
'name' => ['required', 'string', 'max:120'],
'icon' => ['nullable', 'string', 'max:255'],
'requiredRank' => ['required', 'integer', 'min:0', 'max:255'],
'flags' => ['required', 'integer', 'min:0'],
'enabled' => ['boolean'],
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class SaveShopProductRequest extends FormRequest
{
protected function prepareForValidation(): void
{
$this->merge(['new' => $this->boolean('new'), 'enabled' => $this->boolean('enabled')]);
}
public function rules(): array
{
return [
'category_ids' => ['required', 'array', 'min:1'],
'category_ids.*' => ['integer', Rule::exists('store.store_categories', 'id')],
'type' => ['required', 'integer', Rule::in([1, 3, 4, 5, 7, 8, 9])],
'name' => ['required', 'string', 'max:765'],
'tooltipName' => ['nullable', 'string', 'max:765'],
'tooltipType' => ['nullable', 'string', 'max:765'],
'tooltipText' => ['nullable', 'string', 'max:10000'],
'icon' => ['nullable', 'string', 'max:765'],
'price' => ['required', 'integer', 'min:1', 'max:100000000'],
'hyperlinkId' => ['nullable', 'integer', 'min:0'],
'creatureEntry' => ['nullable', 'integer', 'min:0'],
'discountAmount' => ['nullable', 'integer', 'min:0', 'max:100'],
'flags' => ['nullable', 'integer', 'min:0'],
'new' => ['boolean'],
'enabled' => ['boolean'],
'reward_1' => ['nullable', 'integer', 'min:0'],
'reward_2' => ['nullable', 'integer', 'min:0'],
'reward_3' => ['nullable', 'integer', 'min:0'],
'reward_4' => ['nullable', 'integer', 'min:0'],
'reward_5' => ['nullable', 'integer', 'min:0'],
'reward_6' => ['nullable', 'integer', 'min:0'],
'reward_7' => ['nullable', 'integer', 'min:0'],
'reward_8' => ['nullable', 'integer', 'min:0'],
'rewardcount_1' => ['nullable', 'integer', 'min:0'],
'rewardcount_2' => ['nullable', 'integer', 'min:0'],
'rewardcount_3' => ['nullable', 'integer', 'min:0'],
'rewardcount_4' => ['nullable', 'integer', 'min:0'],
'rewardcount_5' => ['nullable', 'integer', 'min:0'],
'rewardcount_6' => ['nullable', 'integer', 'min:0'],
'rewardcount_7' => ['nullable', 'integer', 'min:0'],
'rewardcount_8' => ['nullable', 'integer', 'min:0'],
];
}
}
@@ -19,7 +19,7 @@ class RegisterGameAccountRequest extends FormRequest
return [
'username' => ['required', 'string', 'min:3', 'max:32', 'regex:/^[A-Za-z0-9]+$/'],
'email' => ['required', 'string', 'email:rfc', 'max:255'],
'invite_code' => ['required', 'string', 'min:6', 'max:32'],
'invite_code' => [config('moonwell.registration.require_invite_code') ? 'required' : 'nullable', 'string', 'min:6', 'max:32'],
'password' => ['required', 'string', 'min:8', 'max:32', 'confirmed', 'regex:/^(?=.*[A-Za-z])(?=.*\d).+$/'],
'terms' => ['accepted'],
];