add projet

This commit is contained in:
root
2026-03-05 12:29:37 -05:00
parent 8d1eef8ba8
commit 23b7db1107
9109 changed files with 1106501 additions and 73 deletions
@@ -0,0 +1,39 @@
<?php
namespace App\Http\Requests\Api\Admin;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class IndexAdminProgressRequest extends FormRequest
{
public function authorize(): bool
{
// Replace with your policy/permission logic
return true;
}
public function rules(): array
{
return [
'from' => ['nullable', 'date'],
'to' => ['nullable', 'date'],
'class_section_id' => ['nullable', 'integer'],
'status' => [
'nullable',
'string',
Rule::in(array_keys(config('progress.status_options', []))),
],
];
}
protected function prepareForValidation(): void
{
$this->merge([
'from' => $this->filled('from') ? (string) $this->query('from') : '',
'to' => $this->filled('to') ? (string) $this->query('to') : '',
'class_section_id' => $this->filled('class_section_id') ? (string) $this->query('class_section_id') : '',
'status' => $this->filled('status') ? (string) $this->query('status') : '',
]);
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class SaveAdminNotificationSubjectsRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'subjects' => ['required', 'array'],
// dynamic structure: subjects[adminId][subjectKey]=true OR array of subject strings
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class SavePrintNotificationRecipientsRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'notify' => ['required', 'array'],
];
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class SendTeacherSubmissionNotificationsRequest extends FormRequest
{
public function authorize(): bool
{
return true; // protected by auth/admin middleware
}
public function rules(): array
{
return [
'notify' => ['required', 'array', 'min:1'],
// nested keys are dynamic [section_id][teacher_id], keep flexible
'missing_items' => ['nullable', 'array'],
];
}
}