changes 0328092025

This commit is contained in:
Simon Pocrnjič
2025-09-28 22:36:47 +02:00
parent b40ee9dcde
commit 7e8e0a479b
61 changed files with 4306 additions and 654 deletions
@@ -32,6 +32,7 @@ public function rules(): array
'description' => ['nullable', 'string', 'max:255'],
'initial_amount' => ['nullable', 'numeric'],
'balance_amount' => ['nullable', 'numeric'],
'account_type_id' => ['nullable', 'integer', 'exists:account_types,id'],
];
}
}
@@ -3,6 +3,7 @@
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\DB;
class StoreFieldJobSettingRequest extends FormRequest
{
@@ -16,8 +17,11 @@ public function rules(): array
return [
'segment_id' => ['required', 'integer', 'exists:segments,id'],
'initial_decision_id' => ['required', 'integer', 'exists:decisions,id'],
'asign_decision_id' => ['required', 'integer', 'exists:decisions,id'],
'assign_decision_id' => ['required', 'integer', 'exists:decisions,id'],
'complete_decision_id' => ['required', 'integer', 'exists:decisions,id'],
'cancel_decision_id' => ['nullable', 'integer', 'exists:decisions,id'],
'return_segment_id' => ['nullable', 'integer', 'exists:segments,id'],
'queue_segment_id' => ['nullable', 'integer', 'exists:segments,id'],
];
}
@@ -26,8 +30,51 @@ public function messages(): array
return [
'segment_id.required' => 'Segment is required.',
'initial_decision_id.required' => 'Initial decision is required.',
'asign_decision_id.required' => 'Assign decision is required.',
'assign_decision_id.required' => 'Assign decision is required.',
'complete_decision_id.required' => 'Complete decision is required.',
];
}
/**
* Configure the validator instance.
*/
public function withValidator($validator): void
{
$validator->after(function ($validator): void {
// Validate that the assign_decision_id has a mapped action
$assignDecisionId = $this->input('assign_decision_id');
if (! empty($assignDecisionId)) {
$mapped = DB::table('action_decision')
->where('decision_id', $assignDecisionId)
->exists();
if (! $mapped) {
$validator->errors()->add('assign_decision_id', 'The selected assign decision must have a mapped action. Please map an action to this decision first.');
}
}
// Validate that the complete_decision_id has a mapped action
$completeDecisionId = $this->input('complete_decision_id');
if (! empty($completeDecisionId)) {
$mapped = DB::table('action_decision')
->where('decision_id', $completeDecisionId)
->exists();
if (! $mapped) {
$validator->errors()->add('complete_decision_id', 'The selected complete decision must have a mapped action. Please map an action to this decision first.');
}
}
$cancelDecisionId = $this->input('cancel_decision_id');
if (! empty($cancelDecisionId)) {
$mapped = DB::table('action_decision')
->where('decision_id', $cancelDecisionId)
->exists();
if (! $mapped) {
$validator->errors()->add('cancel_decision_id', 'The selected cancel decision must have a mapped action. Please map an action to this decision first.');
}
}
});
}
}
@@ -34,6 +34,7 @@ public function rules(): array
'description' => ['nullable', 'string', 'max:255'],
'initial_amount' => ['nullable', 'numeric'],
'balance_amount' => ['nullable', 'numeric'],
'account_type_id' => ['sometimes', 'nullable', 'integer', 'exists:account_types,id'],
];
}
}
@@ -0,0 +1,72 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\DB;
class UpdateFieldJobSettingRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'segment_id' => ['required', 'integer', 'exists:segments,id'],
'initial_decision_id' => ['required', 'integer', 'exists:decisions,id'],
'assign_decision_id' => ['required', 'integer', 'exists:decisions,id'],
'complete_decision_id' => ['required', 'integer', 'exists:decisions,id'],
'cancel_decision_id' => ['nullable', 'integer', 'exists:decisions,id'],
'return_segment_id' => ['nullable', 'integer', 'exists:segments,id'],
'queue_segment_id' => ['nullable', 'integer', 'exists:segments,id'],
];
}
public function messages(): array
{
return [
'segment_id.required' => 'Segment is required.',
'initial_decision_id.required' => 'Initial decision is required.',
'assign_decision_id.required' => 'Assign decision is required.',
'complete_decision_id.required' => 'Complete decision is required.',
];
}
public function withValidator($validator): void
{
$validator->after(function ($validator): void {
$assignDecisionId = $this->input('assign_decision_id');
if (! empty($assignDecisionId)) {
$mapped = DB::table('action_decision')
->where('decision_id', $assignDecisionId)
->exists();
if (! $mapped) {
$validator->errors()->add('assign_decision_id', 'The selected assign decision must have a mapped action. Please map an action to this decision first.');
}
}
$completeDecisionId = $this->input('complete_decision_id');
if (! empty($completeDecisionId)) {
$mapped = DB::table('action_decision')
->where('decision_id', $completeDecisionId)
->exists();
if (! $mapped) {
$validator->errors()->add('complete_decision_id', 'The selected complete decision must have a mapped action. Please map an action to this decision first.');
}
}
$cancelDecisionId = $this->input('cancel_decision_id');
if (! empty($cancelDecisionId)) {
$mapped = DB::table('action_decision')
->where('decision_id', $cancelDecisionId)
->exists();
if (! $mapped) {
$validator->errors()->add('cancel_decision_id', 'The selected cancel decision must have a mapped action. Please map an action to this decision first.');
}
}
});
}
}