add more controller

This commit is contained in:
root
2026-03-10 00:48:32 -04:00
parent 5eeaec0257
commit 20ee70d153
151 changed files with 9481 additions and 8407 deletions
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\EmergencyContacts;
use App\Http\Requests\ApiFormRequest;
class EmergencyContactUpdateRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'name' => ['required', 'string', 'max:150'],
'cellphone' => ['required', 'string', 'max:30'],
'email' => ['nullable', 'email', 'max:150'],
'relation' => ['nullable', 'string', 'max:80'],
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Http\Requests\Exams;
use App\Http\Requests\ApiFormRequest;
class ExamDraftAdminLegacyRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'class_section_id' => ['required', 'integer', 'min:1'],
'school_year' => ['required', 'string'],
'semester' => ['required', 'string'],
'exam_type' => ['nullable', 'string', 'max:50'],
'old_exam_file' => ['required', 'file', 'mimes:doc,docx,pdf', 'max:12288'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Exams;
use App\Http\Requests\ApiFormRequest;
class ExamDraftAdminReviewRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'draft_id' => ['required', 'integer', 'min:1'],
'review_status' => ['nullable', 'in:draft,submitted,reviewed,finalized,rejected,pending,final,approved'],
'admin_comments' => ['nullable', 'string'],
'final_file' => ['nullable', 'file', 'mimes:doc,docx,pdf', 'max:12288'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Exams;
use App\Http\Requests\ApiFormRequest;
class ExamDraftTeacherStoreRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'class_section_id' => ['required', 'integer', 'min:1'],
'exam_type' => ['nullable', 'string', 'max:50'],
'description' => ['nullable', 'string'],
'draft_file' => ['nullable', 'file', 'mimes:doc,docx', 'max:12288'],
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentAttendanceReportCheckRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'date' => ['nullable', 'date'],
'dates' => ['nullable', 'array'],
'dates.*' => ['date'],
'type' => ['required', 'in:absent,late,early_dismissal'],
'student_ids' => ['required', 'array'],
'student_ids.*' => ['integer', 'min:1'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentAttendanceReportListRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'start' => ['nullable', 'date'],
'end' => ['nullable', 'date'],
'school_year' => ['nullable', 'string', 'max:20'],
'semester' => ['nullable', 'string', 'max:20'],
];
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentAttendanceReportSubmitRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'student_ids' => ['required', 'array'],
'student_ids.*' => ['integer', 'min:1'],
'date' => ['nullable', 'date'],
'dates' => ['nullable', 'array'],
'dates.*' => ['date'],
'type' => ['required', 'in:absent,late,early_dismissal'],
'arrival_time' => ['nullable', 'string'],
'dismiss_time' => ['nullable', 'string'],
'reason' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentAttendanceReportUpdateRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'reason' => ['nullable', 'string'],
'arrival_time' => ['nullable', 'string'],
'dismiss_time' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentAttendanceRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string', 'max:20'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentEmergencyContactRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'name' => ['required', 'string', 'max:150'],
'cellphone' => ['required', 'string', 'max:30'],
'email' => ['nullable', 'email', 'max:150'],
'relation' => ['nullable', 'string', 'max:80'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentEnrollmentActionRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'enroll' => ['nullable', 'array'],
'enroll.*' => ['integer', 'min:1'],
'withdraw' => ['nullable', 'array'],
'withdraw.*' => ['integer', 'min:1'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentEnrollmentRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string', 'max:20'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentEventParticipationRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'participation' => ['required', 'array'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentInvoiceRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string', 'max:20'],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentProfileUpdateRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'firstname' => ['required', 'string', 'max:255'],
'lastname' => ['required', 'string', 'max:255'],
'cellphone' => ['required', 'string', 'max:25'],
'address_street' => ['required', 'string', 'max:255'],
'city' => ['required', 'string', 'max:255'],
'state' => ['required', 'string', 'max:25'],
'zip' => ['required', 'string', 'max:25'],
];
}
}
@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentRegistrationRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'students' => ['nullable', 'array'],
'students.*.firstname' => ['required_with:students', 'string', 'max:255'],
'students.*.lastname' => ['required_with:students', 'string', 'max:255'],
'students.*.dob' => ['required_with:students', 'date'],
'students.*.gender' => ['required_with:students', 'string', 'max:10'],
'students.*.registration_grade' => ['nullable', 'string', 'max:50'],
'students.*.photo_consent' => ['nullable', 'boolean'],
'students.*.is_new' => ['nullable', 'boolean'],
'students.*.allergies' => ['nullable', 'array'],
'students.*.medical_conditions' => ['nullable', 'array'],
'emergency_contacts' => ['nullable', 'array'],
'emergency_contacts.*.name' => ['required_with:emergency_contacts', 'string', 'max:150'],
'emergency_contacts.*.cellphone' => ['required_with:emergency_contacts', 'string', 'max:30'],
'emergency_contacts.*.email' => ['nullable', 'email', 'max:150'],
'emergency_contacts.*.relation' => ['nullable', 'string', 'max:80'],
];
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests\Parents;
use App\Http\Requests\ApiFormRequest;
class ParentStudentUpdateRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'firstname' => ['required', 'string', 'max:255'],
'lastname' => ['required', 'string', 'max:255'],
'dob' => ['required', 'date'],
'gender' => ['required', 'string', 'max:10'],
'photo_consent' => ['nullable', 'boolean'],
'registration_grade' => ['nullable', 'string', 'max:50'],
'allergies' => ['nullable', 'array'],
'medical_conditions' => ['nullable', 'array'],
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Requests\Reports;
use App\Http\Requests\ApiFormRequest;
class SlipLogListRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string'],
'semester' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Reports;
use App\Http\Requests\ApiFormRequest;
class SlipPreviewRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string'],
'student_name' => ['nullable', 'string'],
'date' => ['nullable', 'string'],
'time_in' => ['nullable', 'string'],
'grade' => ['nullable', 'string'],
'reason' => ['nullable', 'string'],
'admin_name' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests\Reports;
use App\Http\Requests\ApiFormRequest;
class SlipPrintRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string'],
'student_name' => ['required', 'string'],
'date' => ['nullable', 'string'],
'time_in' => ['nullable', 'string'],
'grade' => ['nullable', 'string'],
'reason' => ['nullable', 'string'],
'admin_name' => ['nullable', 'string'],
'paper' => ['nullable', 'string'],
'font_pt' => ['nullable', 'numeric'],
'line_h' => ['nullable', 'numeric'],
'rows' => ['nullable', 'integer'],
'height_mm' => ['nullable', 'numeric'],
'h' => ['nullable', 'numeric'],
'fudge_mm' => ['nullable', 'numeric'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Reports;
use App\Http\Requests\ApiFormRequest;
class SlipReprintRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\SchoolIds;
use App\Http\Requests\ApiFormRequest;
class SchoolIdAssignRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'user_id' => ['required', 'integer', 'min:1', 'exists:users,id'],
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Requests\Settings;
use App\Http\Requests\ApiFormRequest;
class ConfigurationStoreRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'config_key' => ['required', 'string', 'max:255'],
'config_value' => ['required', 'string'],
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Requests\Settings;
use App\Http\Requests\ApiFormRequest;
class ConfigurationUpdateRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'config_key' => ['required', 'string', 'max:255'],
'config_value' => ['required', 'string'],
];
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Requests\Students;
use App\Http\Requests\ApiFormRequest;
class StudentAssignClassRequest extends ApiFormRequest
{
protected function prepareForValidation(): void
{
$value = $this->input('class_section_id');
if (is_string($value)) {
$parts = preg_split('/[,\s]+/', $value, -1, PREG_SPLIT_NO_EMPTY) ?: [];
$this->merge(['class_section_id' => $parts]);
}
}
public function rules(): array
{
return [
'student_id' => ['required', 'integer', 'min:1'],
'class_section_id' => ['required', 'array', 'min:1'],
'class_section_id.*' => ['integer', 'min:1'],
'is_event_only' => ['nullable', 'boolean'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Students;
use App\Http\Requests\ApiFormRequest;
class StudentAssignmentListRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Students;
use App\Http\Requests\ApiFormRequest;
class StudentAutoDistributeRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'class_id' => ['nullable', 'integer', 'min:1'],
'class_section_id' => ['nullable', 'integer', 'min:1'],
'students_per_section' => ['required', 'integer', 'min:1'],
'school_year' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Students;
use App\Http\Requests\ApiFormRequest;
class StudentPromotionTotalsRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Requests\Students;
use App\Http\Requests\ApiFormRequest;
class StudentRemoveClassRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'student_id' => ['required', 'integer', 'min:1'],
'class_section_id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Requests\Students;
use App\Http\Requests\ApiFormRequest;
class StudentSetActiveRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'student_id' => ['required', 'integer', 'min:1'],
'is_active' => ['required', 'boolean'],
];
}
}
@@ -0,0 +1,33 @@
<?php
namespace App\Http\Requests\Students;
use App\Http\Requests\ApiFormRequest;
class StudentUpdateRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_id' => ['nullable', 'string', 'max:100'],
'firstname' => ['required', 'string', 'max:255'],
'lastname' => ['required', 'string', 'max:255'],
'dob' => ['required', 'date'],
'age' => ['nullable', 'integer'],
'gender' => ['required', 'in:Male,Female,Other'],
'registration_grade' => ['required', 'string', 'max:50'],
'photo_consent' => ['nullable', 'boolean'],
'parent_id' => ['required', 'integer', 'min:1'],
'registration_date' => ['nullable', 'date'],
'tuition_paid' => ['nullable', 'boolean'],
'year_of_registration' => ['nullable', 'string'],
'school_year' => ['nullable', 'string'],
'rfid_tag' => ['nullable', 'string', 'max:100'],
'semester' => ['nullable', 'string'],
'is_new' => ['required', 'boolean'],
'is_active' => ['nullable', 'boolean'],
'medical_conditions' => ['nullable', 'string'],
'allergies' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Http\Requests\Subjects;
use App\Http\Requests\ApiFormRequest;
class SubjectCurriculumStoreRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'class_id' => ['required', 'integer', 'min:1'],
'subject' => ['required', 'in:islamic,quran'],
'chapter_name' => ['required', 'string', 'max:255'],
'unit_number' => ['nullable', 'integer'],
'unit_title' => ['nullable', 'string', 'max:255'],
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Http\Requests\Subjects;
use App\Http\Requests\ApiFormRequest;
class SubjectCurriculumUpdateRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'class_id' => ['required', 'integer', 'min:1'],
'subject' => ['required', 'in:islamic,quran'],
'chapter_name' => ['required', 'string', 'max:255'],
'unit_number' => ['nullable', 'integer'],
'unit_title' => ['nullable', 'string', 'max:255'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Teachers;
use App\Http\Requests\ApiFormRequest;
class TeacherAbsenceSubmitRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'dates' => ['required', 'array', 'min:1'],
'dates.*' => ['date'],
'reason' => ['required', 'string'],
'reason_type' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Teachers;
use App\Http\Requests\ApiFormRequest;
class TeacherAssignmentDeleteRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'teacher_id' => ['required', 'integer', 'min:1'],
'class_section_id' => ['required', 'integer', 'min:1'],
'position' => ['required', 'in:main,ta'],
'school_year' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Teachers;
use App\Http\Requests\ApiFormRequest;
class TeacherAssignmentListRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'school_year' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Teachers;
use App\Http\Requests\ApiFormRequest;
class TeacherAssignmentStoreRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'teacher_id' => ['required', 'integer', 'min:1'],
'class_section_id' => ['required', 'integer', 'min:1'],
'teacher_role' => ['nullable', 'string'],
'school_year' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Teachers;
use App\Http\Requests\ApiFormRequest;
class TeacherClassViewRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'class_section_id' => ['nullable', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,15 @@
<?php
namespace App\Http\Requests\Teachers;
use App\Http\Requests\ApiFormRequest;
class TeacherSwitchClassRequest extends ApiFormRequest
{
public function rules(): array
{
return [
'class_section_id' => ['required', 'integer', 'min:1'],
];
}
}