39 خطوط
1.3 KiB
PHP
39 خطوط
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
class StoreMeetingRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'title' => 'required|string|max:255',
|
|
'project_id' => 'nullable|exists:projects,id',
|
|
'sprint_id' => 'nullable|exists:sprints,id',
|
|
'meeting_type_id' => 'nullable|exists:meeting_types,id',
|
|
'date' => 'required|date',
|
|
'start_time' => 'nullable|date_format:H:i',
|
|
'end_time' => 'nullable|date_format:H:i|after:start_time',
|
|
'meeting_type' => 'required|string|max:50',
|
|
'status' => 'nullable|string|in:draft,scheduled,in_progress,completed,cancelled,postponed',
|
|
'objective' => 'nullable|string|max:2000',
|
|
'agenda' => 'nullable|string',
|
|
'notes' => 'nullable|string',
|
|
'summary' => 'nullable|string',
|
|
'location' => 'nullable|string|max:255',
|
|
'meeting_link' => 'nullable|url|max:2048',
|
|
'owner_id' => 'nullable|exists:users,id',
|
|
'facilitator_id' => 'nullable|exists:users,id',
|
|
'reminder_minutes' => 'nullable|integer|min:0|max:10080',
|
|
'recurrence_rule' => 'nullable|array',
|
|
];
|
|
}
|
|
}
|