Files
ars-backend/app/Http/Requests/UpdateSessionRequest.php
ROOG 6356baacc0 main: 增强会话功能,支持消息管理和接口文档
- 添加 `last_message_id` 字段至 `chat_sessions` 表,更新其关联索引
- 实现会话更新接口,支持修改名称与状态并添加验证逻辑
- 增加会话列表接口,支持状态过滤与关键字查询
- 提供会话和消息相关的资源类和请求验证类
- 扩展 `ChatService` 服务层逻辑以处理会话更新和消息附加
- 编写测试用例以验证新功能的正确性
- 增加接口文档及 OpenAPI 规范文件,覆盖新增功能
- 更新数据库播种器,添加默认用户
2025-12-14 20:20:27 +08:00

43 lines
1.1 KiB
PHP

<?php
namespace App\Http\Requests;
use App\Enums\ChatSessionStatus;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class UpdateSessionRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
/**
* @return array<string, mixed>
*/
public function rules(): array
{
return [
'session_name' => ['sometimes', 'string', 'min:1', 'max:255'],
'status' => ['sometimes', 'string', Rule::in(ChatSessionStatus::all())],
];
}
protected function prepareForValidation(): void
{
if ($this->has('session_name') && is_string($this->input('session_name'))) {
$this->merge(['session_name' => trim($this->input('session_name'))]);
}
}
public function withValidator($validator)
{
$validator->after(function ($v) {
if (! $this->has('session_name') && ! $this->has('status')) {
$v->errors()->add('payload', '至少提供一个可更新字段');
}
});
}
}