First commit

This commit is contained in:
Saufi
2026-05-18 08:56:23 +08:00
commit fd3d3a4d2b
147 changed files with 22099 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
<?php
namespace App\Http\Requests\Chatbot;
use Illuminate\Foundation\Http\FormRequest;
class AskQuestionRequest extends FormRequest
{
public function authorize(): bool
{
return true; // Public access
}
public function rules(): array
{
return [
'question' => [
'required',
'string',
'min:3',
'max:1000',
],
'category_id' => [
'nullable',
'integer',
'exists:categories,id',
],
'session_token' => [
'nullable',
'string',
'max:64',
],
];
}
public function messages(): array
{
return [
'question.required' => 'Soalan wajib diisi.',
'question.min' => 'Soalan terlalu pendek (minimum 3 karakter).',
'question.max' => 'Soalan terlalu panjang (maksimum 1000 karakter).',
'category_id.exists' => 'Kategori tidak wujud.',
];
}
/**
* Sanitize soalan sebelum diproses.
*/
protected function prepareForValidation(): void
{
if ($this->has('question')) {
// Buang karakter kawalan berbahaya yang mungkin prompt injection
$sanitized = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/', '', $this->question);
$sanitized = trim($sanitized);
$this->merge(['question' => $sanitized]);
}
}
}