update project

This commit is contained in:
root
2026-05-30 01:11:35 -04:00
parent 3a0628ecc7
commit 2225f6bc72
9743 changed files with 1122482 additions and 59 deletions
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\AssignmentData;
use Illuminate\Foundation\Http\FormRequest;
final class AssignmentRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): AssignmentData { return new AssignmentData(studentId:(int)$this->input('student_id'), assignmentType:(string)$this->input('assignment_type'), assignableType:(string)$this->input('assignable_type'), assignableId:(int)$this->input('assignable_id'), effectiveFrom:(string)$this->input('effective_from',date('Y-m-d')), effectiveTo:$this->input('effective_to'), status:(string)$this->input('status','active'), metadata:(array)$this->input('metadata',[])); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\BulkPromotionData;
use Illuminate\Foundation\Http\FormRequest;
final class BulkPromotionRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): BulkPromotionData { return new BulkPromotionData(studentIds:(array)$this->input('student_ids',[]), fromAcademicYearId:(int)$this->input('from_academic_year_id'), toAcademicYearId:(int)$this->input('to_academic_year_id'), effectiveDate:(string)$this->input('effective_date',date('Y-m-d')), overridePolicy:(bool)$this->boolean('override_policy'), overrideReason:$this->input('override_reason')); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\CreateGuardianData;
use Illuminate\Foundation\Http\FormRequest;
final class CreateGuardianRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): CreateGuardianData { return new CreateGuardianData(firstName:(string)$this->input('first_name'), lastName:(string)$this->input('last_name'), email:$this->input('email'), phone:$this->input('phone'), relationshipType:$this->input('relationship_type'), emergencyContact:(bool)$this->boolean('emergency_contact'), pickupAuthorized:(bool)$this->boolean('pickup_authorized'), metadata:(array)$this->input('metadata',[])); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\HouseholdData;
use Illuminate\Foundation\Http\FormRequest;
final class CreateHouseholdRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): HouseholdData { return new HouseholdData(name:(string)$this->input('name'), primaryAddress:$this->input('primary_address'), metadata:(array)$this->input('metadata',[])); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\CreateStudentData;
use Illuminate\Foundation\Http\FormRequest;
final class CreateStudentRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): CreateStudentData { return new CreateStudentData(firstName:(string)$this->input('first_name'), lastName:(string)$this->input('last_name'), middleName:$this->input('middle_name'), preferredName:$this->input('preferred_name'), dateOfBirth:$this->input('date_of_birth'), gender:$this->input('gender'), primaryLanguage:$this->input('primary_language'), externalId:$this->input('external_id'), initialStatus:(string)$this->input('initial_status','active'), profileMetadata:(array)$this->input('profile_metadata',[]), extensionProfile:(array)$this->input('extension_profile',[]), idempotencyKey:$this->header('Idempotency-Key')); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\EnrollmentData;
use Illuminate\Foundation\Http\FormRequest;
final class EnrollmentRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): EnrollmentData { return new EnrollmentData(studentId:(int)$this->input('student_id'), academicYearId:(int)$this->input('academic_year_id'), termId:$this->input('term_id')?(int)$this->input('term_id'):null, gradeLevelId:$this->input('grade_level_id')?(int)$this->input('grade_level_id'):null, programId:$this->input('program_id')?(int)$this->input('program_id'):null, classGroupId:$this->input('class_group_id')?(int)$this->input('class_group_id'):null, enrollmentDate:(string)$this->input('enrollment_date',date('Y-m-d')), status:(string)$this->input('status','active'), reason:$this->input('reason'), metadata:(array)$this->input('metadata',[])); } }
@@ -0,0 +1,5 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\IslamicSundaySchool\Students\DTO\IslamicSundaySchoolStudentProfileData; use Illuminate\Foundation\Http\FormRequest;
final class IslamicSundaySchoolStudentProfileRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): IslamicSundaySchoolStudentProfileData { return new IslamicSundaySchoolStudentProfileData(studentId:(int)$this->input('student_id'), familyProfileId:$this->input('family_profile_id')?(int)$this->input('family_profile_id'):null, quranLevelId:$this->input('quran_level_id')?(int)$this->input('quran_level_id'):null, arabicLevelId:$this->input('arabic_level_id')?(int)$this->input('arabic_level_id'):null, islamicStudiesTrackId:$this->input('islamic_studies_track_id')?(int)$this->input('islamic_studies_track_id'):null, halaqaGroupId:$this->input('halaqa_group_id')?(int)$this->input('halaqa_group_id'):null, memorizationProgressSummary:$this->input('memorization_progress_summary'), recitationPlacement:$this->input('recitation_placement'), volunteerFamilyParticipation:(bool)$this->boolean('volunteer_family_participation'), sensitiveAdminNotes:$this->input('sensitive_admin_notes'), metadata:(array)$this->input('metadata',[])); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\LinkGuardianData;
use Illuminate\Foundation\Http\FormRequest;
final class LinkGuardianRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): LinkGuardianData { return new LinkGuardianData(studentId:(int)$this->input('student_id'), guardianId:(int)$this->input('guardian_id'), relationshipType:(string)$this->input('relationship_type'), emergencyContact:(bool)$this->boolean('emergency_contact'), pickupAuthorized:(bool)$this->boolean('pickup_authorized'), financialResponsibility:$this->has('financial_responsibility')?(bool)$this->boolean('financial_responsibility'):null, academicContact:$this->has('academic_contact')?(bool)$this->boolean('academic_contact'):null, notes:$this->input('notes')); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\PromotionData;
use Illuminate\Foundation\Http\FormRequest;
final class PromotionRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): PromotionData { return new PromotionData(studentId:(int)$this->input('student_id'), fromAcademicYearId:(int)$this->input('from_academic_year_id'), toAcademicYearId:(int)$this->input('to_academic_year_id'), effectiveDate:(string)$this->input('effective_date',date('Y-m-d')), reason:(string)$this->input('reason','promotion'), overridePolicy:(bool)$this->boolean('override_policy'), overrideReason:$this->input('override_reason')); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\StudentSearchQuery;
use Illuminate\Foundation\Http\FormRequest;
final class StudentSearchRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): StudentSearchQuery { return new StudentSearchQuery(search:$this->input('search'), status:$this->input('status','active'), guardianId:$this->input('guardian_id')?(int)$this->input('guardian_id'):null, householdId:$this->input('household_id')?(int)$this->input('household_id'):null, limit:(int)$this->input('limit',50), filters:(array)$this->input('filters',[])); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\StudentStatusTransitionData;
use Illuminate\Foundation\Http\FormRequest;
final class StudentStatusTransitionRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): StudentStatusTransitionData { return new StudentStatusTransitionData(fromStatus:(string)$this->input('from_status'), toStatus:(string)$this->input('to_status'), reason:(string)$this->input('reason'), metadata:(array)$this->input('metadata',[])); } }
@@ -0,0 +1,6 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\Students;
use App\Domain\SchoolCore\Students\DTO\UpdateStudentData;
use Illuminate\Foundation\Http\FormRequest;
final class UpdateStudentRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return []; } public function toDTO(): UpdateStudentData { return new UpdateStudentData(firstName:$this->input('first_name'), lastName:$this->input('last_name'), middleName:$this->input('middle_name'), preferredName:$this->input('preferred_name'), dateOfBirth:$this->input('date_of_birth'), gender:$this->input('gender'), primaryLanguage:$this->input('primary_language'), profileMetadata:(array)$this->input('profile_metadata',[]), updateReason:(string)$this->input('update_reason','student update')); } }