StoreChatMessageRequest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Requests;
  3. use Illuminate\Foundation\Http\FormRequest;
  4. use Illuminate\Validation\Rule;
  5. class StoreChatMessageRequest extends FormRequest
  6. {
  7. /**
  8. * Determine if the user is authorized to make this request.
  9. *
  10. * @return bool
  11. */
  12. public function authorize()
  13. {
  14. return true;
  15. }
  16. /**
  17. * Get the validation rules that apply to the request.
  18. *
  19. * @return array
  20. */
  21. public function rules()
  22. {
  23. return [
  24. 'chat_id' => 'required|string|size:36',
  25. 'messages' => 'required|array|min:1',
  26. 'messages.*.parent_id' => 'nullable|string|exists:chat_messages,uid',
  27. 'messages.*.session_id' => 'nullable|string|size:36',
  28. 'messages.*.role' => ['required', Rule::in(['user', 'assistant', 'tool'])],
  29. 'messages.*.content' => 'nullable|string',
  30. 'messages.*.model_name' => 'nullable|string|max:100',
  31. 'messages.*.tool_calls' => 'nullable|array',
  32. 'messages.*.tool_calls.*.id' => 'required_with:tool_calls|string',
  33. 'messages.*.tool_calls.*.function' => 'required_with:tool_calls|string',
  34. 'messages.*.tool_calls.*.arguments' => 'required_with:tool_calls',
  35. 'messages.*.tool_call_id' => 'nullable|string|max:100'
  36. ];
  37. }
  38. public function messages()
  39. {
  40. return [
  41. 'messages.required' => '批量更新的消息列表不能为空',
  42. 'messages.*.parent_id.required' => '消息ID不能为空',
  43. 'messages.*.parent_id.exists' => '消息不存在'
  44. ];
  45. }
  46. }