Files
lotteryLaravel/app/Http/Requests/Admin/Concerns/AgentProfileFieldRules.php
kang 2e0b257160
Some checks failed
lotterLaravel CI / test (push) Has been cancelled
feat: enhance player authentication and agent management features
- Updated AGENTS.md to clarify player interface bindings and agent account restrictions.
- Improved PlayerAuthLoginController to include captcha verification for player login.
- Enhanced AdminPlayerIndexController with permission checks for admin users.
- Refactored AdminPlayerStoreController to enforce agent node restrictions for non-super admins.
- Introduced new error codes for player authentication failures and updated related services.
- Enhanced validation rules for agent profiles to include settlement cycle options.
- Improved AdminCaptchaService to support separate scopes for admin and player captcha handling.
- Updated various services to ensure proper credit management and settlement processes.
2026-06-17 15:27:00 +08:00

37 lines
1.3 KiB
PHP

<?php
namespace App\Http\Requests\Admin\Concerns;
trait AgentProfileFieldRules
{
/** @return array<string, mixed> */
protected function agentProfileFieldRules(): array
{
return [
'total_share_rate' => ['sometimes', 'numeric', 'min:0', 'max:100'],
'relative_share_rate' => ['sometimes', 'numeric', 'min:0', 'max:100'],
'credit_limit' => ['sometimes', 'integer', 'min:0', 'max:999999999'],
'rebate_limit' => ['sometimes', 'numeric', 'min:0', 'max:100'],
'default_player_rebate' => ['sometimes', 'numeric', 'min:0', 'max:100'],
'can_grant_extra_rebate' => ['sometimes', 'boolean'],
'can_create_child_agent' => ['sometimes', 'boolean'],
'can_create_player' => ['sometimes', 'boolean'],
'settlement_cycle' => ['sometimes', 'nullable', 'string', 'in:weekly,monthly'],
'risk_tags' => ['sometimes', 'array'],
'risk_tags.*' => ['string', 'max:64'],
];
}
protected function prepareAgentProfileFieldsForValidation(): void
{
if (! $this->has('settlement_cycle')) {
return;
}
$cycle = trim((string) $this->input('settlement_cycle'));
$this->merge([
'settlement_cycle' => $cycle === '' ? 'weekly' : $cycle,
]);
}
}