Commit 45ab21bf authored by Mahmoud Aglan's avatar Mahmoud Aglan

Updated Sportst Actifity Forms

parent 06e0ae29
...@@ -78,6 +78,12 @@ class AcademyContractController extends Controller ...@@ -78,6 +78,12 @@ class AcademyContractController extends Controller
$errors = []; $errors = [];
if ($contractNumber === '') { if ($contractNumber === '') {
$errors[] = 'رقم العقد مطلوب'; $errors[] = 'رقم العقد مطلوب';
} elseif (mb_strlen($contractNumber) > 50) {
$errors[] = 'رقم العقد يجب ألا يتجاوز 50 حرف';
}
$validContractTypes = ['revenue_share', 'fixed_rent', 'hybrid'];
if ($contractType === '' || !in_array($contractType, $validContractTypes)) {
$errors[] = 'نوع العقد مطلوب';
} }
if ($startDate === '') { if ($startDate === '') {
$errors[] = 'تاريخ البداية مطلوب'; $errors[] = 'تاريخ البداية مطلوب';
...@@ -88,11 +94,39 @@ class AcademyContractController extends Controller ...@@ -88,11 +94,39 @@ class AcademyContractController extends Controller
if ($startDate !== '' && $endDate !== '' && $startDate >= $endDate) { if ($startDate !== '' && $endDate !== '' && $startDate >= $endDate) {
$errors[] = 'تاريخ البداية يجب أن يكون قبل تاريخ النهاية'; $errors[] = 'تاريخ البداية يجب أن يكون قبل تاريخ النهاية';
} }
if ($clubCommissionPct < 0 || $clubCommissionPct > 100) {
$errors[] = 'نسبة النادي يجب أن تكون بين 0 و 100';
}
if ($academySharePct < 0 || $academySharePct > 100) {
$errors[] = 'نسبة الأكاديمية يجب أن تكون بين 0 و 100';
}
if ($fixedMonthlyRent < 0) {
$errors[] = 'الإيجار الشهري لا يمكن أن يكون سالب';
}
if ($depositAmount < 0) {
$errors[] = 'مبلغ التأمين لا يمكن أن يكون سالب';
}
// Duplicate contract number check
if ($contractNumber !== '') {
$existingContract = $db->selectOne(
"SELECT id FROM sa_academy_contracts WHERE contract_number = ?",
[$contractNumber]
);
if ($existingContract) {
$errors[] = 'رقم العقد مستخدم بالفعل';
}
}
// File upload validation // File upload validation
$file = $_FILES['contract_pdf'] ?? null; $file = $_FILES['contract_pdf'] ?? null;
if (!$file || $file['error'] !== UPLOAD_ERR_OK) { if (!$file || $file['error'] !== UPLOAD_ERR_OK) {
$errors[] = 'ملف العقد (PDF) مطلوب'; $errors[] = 'ملف العقد (PDF) مطلوب';
} elseif ($file && $file['error'] === UPLOAD_ERR_OK) {
$ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
if ($ext !== 'pdf') {
$errors[] = 'ملف العقد يجب أن يكون بصيغة PDF فقط';
}
} }
if (!empty($errors)) { if (!empty($errors)) {
......
...@@ -150,8 +150,16 @@ class BookingController extends Controller ...@@ -150,8 +150,16 @@ class BookingController extends Controller
if ($data['end_time'] === '') { if ($data['end_time'] === '') {
$errors[] = 'وقت النهاية مطلوب'; $errors[] = 'وقت النهاية مطلوب';
} }
if ($data['start_time'] !== '' && $data['end_time'] !== '' && $data['start_time'] >= $data['end_time']) {
$errors[] = 'وقت البداية يجب أن يكون قبل وقت النهاية';
}
if ($data['booker_name'] === '') { if ($data['booker_name'] === '') {
$errors[] = 'اسم الحاجز مطلوب'; $errors[] = 'اسم الحاجز مطلوب';
} elseif (mb_strlen($data['booker_name']) > 300) {
$errors[] = 'اسم الحاجز يجب ألا يتجاوز 300 حرف';
}
if ($data['participant_count'] < 1) {
$errors[] = 'عدد المشاركين يجب أن يكون 1 على الأقل';
} }
if (!empty($errors)) { if (!empty($errors)) {
......
...@@ -100,9 +100,19 @@ class CoachController extends Controller ...@@ -100,9 +100,19 @@ class CoachController extends Controller
$errors = []; $errors = [];
if ($code === '') { if ($code === '') {
$errors[] = 'كود المدرب مطلوب'; $errors[] = 'كود المدرب مطلوب';
} elseif (mb_strlen($code) > 30) {
$errors[] = 'كود المدرب يجب ألا يتجاوز 30 حرف';
} }
if ($fullNameAr === '') { if ($fullNameAr === '') {
$errors[] = 'الاسم بالعربي مطلوب'; $errors[] = 'الاسم بالعربي مطلوب';
} elseif (mb_strlen($fullNameAr) > 300) {
$errors[] = 'الاسم بالعربي يجب ألا يتجاوز 300 حرف';
}
if ($employmentType === '') {
$errors[] = 'نوع التوظيف مطلوب';
}
if ($paymentModel === '') {
$errors[] = 'نموذج الدفع مطلوب';
} }
if ($code !== '' && Coach::findByCode($code) !== null) { if ($code !== '' && Coach::findByCode($code) !== null) {
$errors[] = 'كود المدرب مستخدم بالفعل'; $errors[] = 'كود المدرب مستخدم بالفعل';
...@@ -133,8 +143,8 @@ class CoachController extends Controller ...@@ -133,8 +143,8 @@ class CoachController extends Controller
'email' => $email ?: null, 'email' => $email ?: null,
'date_of_birth' => $dateOfBirth ?: null, 'date_of_birth' => $dateOfBirth ?: null,
'gender' => $gender ?: null, 'gender' => $gender ?: null,
'employment_type' => $employmentType ?: null, 'employment_type' => $employmentType,
'payment_model' => $paymentModel ?: null, 'payment_model' => $paymentModel,
'hourly_rate' => $hourlyRate !== '' ? (float) $hourlyRate : null, 'hourly_rate' => $hourlyRate !== '' ? (float) $hourlyRate : null,
'session_rate' => $sessionRate !== '' ? (float) $sessionRate : null, 'session_rate' => $sessionRate !== '' ? (float) $sessionRate : null,
'monthly_rate' => $monthlyRate !== '' ? (float) $monthlyRate : null, 'monthly_rate' => $monthlyRate !== '' ? (float) $monthlyRate : null,
...@@ -249,9 +259,19 @@ class CoachController extends Controller ...@@ -249,9 +259,19 @@ class CoachController extends Controller
$errors = []; $errors = [];
if ($code === '') { if ($code === '') {
$errors[] = 'كود المدرب مطلوب'; $errors[] = 'كود المدرب مطلوب';
} elseif (mb_strlen($code) > 30) {
$errors[] = 'كود المدرب يجب ألا يتجاوز 30 حرف';
} }
if ($fullNameAr === '') { if ($fullNameAr === '') {
$errors[] = 'الاسم بالعربي مطلوب'; $errors[] = 'الاسم بالعربي مطلوب';
} elseif (mb_strlen($fullNameAr) > 300) {
$errors[] = 'الاسم بالعربي يجب ألا يتجاوز 300 حرف';
}
if ($employmentType === '') {
$errors[] = 'نوع التوظيف مطلوب';
}
if ($paymentModel === '') {
$errors[] = 'نموذج الدفع مطلوب';
} }
if ($code !== '' && $code !== $coach['code']) { if ($code !== '' && $code !== $coach['code']) {
$existing = Coach::findByCode($code); $existing = Coach::findByCode($code);
...@@ -285,8 +305,8 @@ class CoachController extends Controller ...@@ -285,8 +305,8 @@ class CoachController extends Controller
'email' => $email ?: null, 'email' => $email ?: null,
'date_of_birth' => $dateOfBirth ?: null, 'date_of_birth' => $dateOfBirth ?: null,
'gender' => $gender ?: null, 'gender' => $gender ?: null,
'employment_type' => $employmentType ?: null, 'employment_type' => $employmentType,
'payment_model' => $paymentModel ?: null, 'payment_model' => $paymentModel,
'hourly_rate' => $hourlyRate !== '' ? (float) $hourlyRate : null, 'hourly_rate' => $hourlyRate !== '' ? (float) $hourlyRate : null,
'session_rate' => $sessionRate !== '' ? (float) $sessionRate : null, 'session_rate' => $sessionRate !== '' ? (float) $sessionRate : null,
'monthly_rate' => $monthlyRate !== '' ? (float) $monthlyRate : null, 'monthly_rate' => $monthlyRate !== '' ? (float) $monthlyRate : null,
......
...@@ -97,15 +97,30 @@ class FacilityController extends Controller ...@@ -97,15 +97,30 @@ class FacilityController extends Controller
$errors = []; $errors = [];
if ($code === '') { if ($code === '') {
$errors[] = 'الكود مطلوب'; $errors[] = 'الكود مطلوب';
} elseif (mb_strlen($code) > 30) {
$errors[] = 'الكود يجب ألا يتجاوز 30 حرف';
} }
if ($nameAr === '') { if ($nameAr === '') {
$errors[] = 'الاسم بالعربية مطلوب'; $errors[] = 'الاسم بالعربية مطلوب';
} elseif (mb_strlen($nameAr) > 300) {
$errors[] = 'الاسم بالعربية يجب ألا يتجاوز 300 حرف';
}
if ($nameEn !== '' && mb_strlen($nameEn) > 300) {
$errors[] = 'الاسم بالإنجليزية يجب ألا يتجاوز 300 حرف';
} }
if ($facilityType === '' || !isset(Facility::getTypeOptions()[$facilityType])) { if ($facilityType === '' || !isset(Facility::getTypeOptions()[$facilityType])) {
$errors[] = 'نوع المنشأة مطلوب'; $errors[] = 'نوع المنشأة مطلوب';
} }
if ($location !== '' && mb_strlen($location) > 500) {
$errors[] = 'وصف الموقع يجب ألا يتجاوز 500 حرف';
}
if ($opStart === '' || $opEnd === '') { if ($opStart === '' || $opEnd === '') {
$errors[] = 'ساعات التشغيل مطلوبة'; $errors[] = 'ساعات التشغيل مطلوبة';
} elseif ($opStart >= $opEnd) {
$errors[] = 'وقت البدء يجب أن يكون قبل وقت الانتهاء';
}
if ($slotMinutes < 15 || $slotMinutes > 240) {
$errors[] = 'مدة الفترة يجب أن تكون بين 15 و 240 دقيقة';
} }
if (!empty($errors)) { if (!empty($errors)) {
...@@ -216,15 +231,30 @@ class FacilityController extends Controller ...@@ -216,15 +231,30 @@ class FacilityController extends Controller
$errors = []; $errors = [];
if ($code === '') { if ($code === '') {
$errors[] = 'الكود مطلوب'; $errors[] = 'الكود مطلوب';
} elseif (mb_strlen($code) > 30) {
$errors[] = 'الكود يجب ألا يتجاوز 30 حرف';
} }
if ($nameAr === '') { if ($nameAr === '') {
$errors[] = 'الاسم بالعربية مطلوب'; $errors[] = 'الاسم بالعربية مطلوب';
} elseif (mb_strlen($nameAr) > 300) {
$errors[] = 'الاسم بالعربية يجب ألا يتجاوز 300 حرف';
}
if ($nameEn !== '' && mb_strlen($nameEn) > 300) {
$errors[] = 'الاسم بالإنجليزية يجب ألا يتجاوز 300 حرف';
} }
if ($facilityType === '' || !isset(Facility::getTypeOptions()[$facilityType])) { if ($facilityType === '' || !isset(Facility::getTypeOptions()[$facilityType])) {
$errors[] = 'نوع المنشأة مطلوب'; $errors[] = 'نوع المنشأة مطلوب';
} }
if ($location !== '' && mb_strlen($location) > 500) {
$errors[] = 'وصف الموقع يجب ألا يتجاوز 500 حرف';
}
if ($opStart === '' || $opEnd === '') { if ($opStart === '' || $opEnd === '') {
$errors[] = 'ساعات التشغيل مطلوبة'; $errors[] = 'ساعات التشغيل مطلوبة';
} elseif ($opStart >= $opEnd) {
$errors[] = 'وقت البدء يجب أن يكون قبل وقت الانتهاء';
}
if ($slotMinutes < 15 || $slotMinutes > 240) {
$errors[] = 'مدة الفترة يجب أن تكون بين 15 و 240 دقيقة';
} }
if (!empty($errors)) { if (!empty($errors)) {
...@@ -320,12 +350,16 @@ class FacilityController extends Controller ...@@ -320,12 +350,16 @@ class FacilityController extends Controller
$errors = []; $errors = [];
if ($nameAr === '') { if ($nameAr === '') {
$errors[] = 'اسم الفترة مطلوب'; $errors[] = 'اسم الفترة مطلوب';
} elseif (mb_strlen($nameAr) > 100) {
$errors[] = 'اسم الفترة يجب ألا يتجاوز 100 حرف';
} }
if ($bracketType === '' || !isset(TimeBracket::getBracketTypeOptions()[$bracketType])) { if ($bracketType === '' || !isset(TimeBracket::getBracketTypeOptions()[$bracketType])) {
$errors[] = 'نوع الفترة مطلوب'; $errors[] = 'نوع الفترة مطلوب';
} }
if ($startTime === '' || $endTime === '') { if ($startTime === '' || $endTime === '') {
$errors[] = 'وقت البداية والنهاية مطلوبان'; $errors[] = 'وقت البداية والنهاية مطلوبان';
} elseif ($startTime >= $endTime) {
$errors[] = 'وقت البدء يجب أن يكون قبل وقت الانتهاء';
} }
if (empty($daysOfWeek) || !is_array($daysOfWeek)) { if (empty($daysOfWeek) || !is_array($daysOfWeek)) {
$errors[] = 'يجب اختيار يوم واحد على الأقل'; $errors[] = 'يجب اختيار يوم واحد على الأقل';
......
...@@ -69,9 +69,16 @@ class FacilityUnitController extends Controller ...@@ -69,9 +69,16 @@ class FacilityUnitController extends Controller
$errors = []; $errors = [];
if ($code === '') { if ($code === '') {
$errors[] = 'الكود مطلوب'; $errors[] = 'الكود مطلوب';
} elseif (mb_strlen($code) > 30) {
$errors[] = 'الكود يجب ألا يتجاوز 30 حرف';
} }
if ($nameAr === '') { if ($nameAr === '') {
$errors[] = 'الاسم بالعربية مطلوب'; $errors[] = 'الاسم بالعربية مطلوب';
} elseif (mb_strlen($nameAr) > 200) {
$errors[] = 'الاسم بالعربية يجب ألا يتجاوز 200 حرف';
}
if ($nameEn !== '' && mb_strlen($nameEn) > 200) {
$errors[] = 'الاسم بالإنجليزية يجب ألا يتجاوز 200 حرف';
} }
if ($unitType === '' || !isset(FacilityUnit::getUnitTypeOptions()[$unitType])) { if ($unitType === '' || !isset(FacilityUnit::getUnitTypeOptions()[$unitType])) {
$errors[] = 'نوع الوحدة مطلوب'; $errors[] = 'نوع الوحدة مطلوب';
...@@ -167,9 +174,16 @@ class FacilityUnitController extends Controller ...@@ -167,9 +174,16 @@ class FacilityUnitController extends Controller
$errors = []; $errors = [];
if ($code === '') { if ($code === '') {
$errors[] = 'الكود مطلوب'; $errors[] = 'الكود مطلوب';
} elseif (mb_strlen($code) > 30) {
$errors[] = 'الكود يجب ألا يتجاوز 30 حرف';
} }
if ($nameAr === '') { if ($nameAr === '') {
$errors[] = 'الاسم بالعربية مطلوب'; $errors[] = 'الاسم بالعربية مطلوب';
} elseif (mb_strlen($nameAr) > 200) {
$errors[] = 'الاسم بالعربية يجب ألا يتجاوز 200 حرف';
}
if ($nameEn !== '' && mb_strlen($nameEn) > 200) {
$errors[] = 'الاسم بالإنجليزية يجب ألا يتجاوز 200 حرف';
} }
if ($unitType === '' || !isset(FacilityUnit::getUnitTypeOptions()[$unitType])) { if ($unitType === '' || !isset(FacilityUnit::getUnitTypeOptions()[$unitType])) {
$errors[] = 'نوع الوحدة مطلوب'; $errors[] = 'نوع الوحدة مطلوب';
......
...@@ -113,6 +113,8 @@ class PlayerController extends Controller ...@@ -113,6 +113,8 @@ class PlayerController extends Controller
$errors = []; $errors = [];
if ($fullNameAr === '') { if ($fullNameAr === '') {
$errors[] = 'الاسم بالعربي مطلوب'; $errors[] = 'الاسم بالعربي مطلوب';
} elseif (mb_strlen($fullNameAr) > 300) {
$errors[] = 'الاسم بالعربي يجب ألا يتجاوز 300 حرف';
} }
if ($playerType === '') { if ($playerType === '') {
$errors[] = 'نوع اللاعب مطلوب'; $errors[] = 'نوع اللاعب مطلوب';
...@@ -122,10 +124,35 @@ class PlayerController extends Controller ...@@ -122,10 +124,35 @@ class PlayerController extends Controller
} }
$validTypes = ['member', 'non_member']; $validTypes = ['member', 'non_member'];
if (!in_array($playerType, $validTypes, true)) { if ($playerType !== '' && !in_array($playerType, $validTypes, true)) {
$errors[] = 'نوع اللاعب غير صالح'; $errors[] = 'نوع اللاعب غير صالح';
} }
if ($fullNameEn !== '' && mb_strlen($fullNameEn) > 300) {
$errors[] = 'الاسم بالإنجليزي يجب ألا يتجاوز 300 حرف';
}
if ($nationalId !== '' && strlen($nationalId) > 14) {
$errors[] = 'الرقم القومي يجب ألا يتجاوز 14 رقم';
}
if ($phone !== '' && mb_strlen($phone) > 30) {
$errors[] = 'رقم الهاتف يجب ألا يتجاوز 30 حرف';
}
if ($email !== '' && mb_strlen($email) > 200) {
$errors[] = 'البريد الإلكتروني يجب ألا يتجاوز 200 حرف';
}
if ($guardianName !== '' && mb_strlen($guardianName) > 300) {
$errors[] = 'اسم ولي الأمر يجب ألا يتجاوز 300 حرف';
}
if ($guardianPhone !== '' && mb_strlen($guardianPhone) > 30) {
$errors[] = 'هاتف ولي الأمر يجب ألا يتجاوز 30 حرف';
}
if ($guardianNationalId !== '' && strlen($guardianNationalId) > 14) {
$errors[] = 'الرقم القومي لولي الأمر يجب ألا يتجاوز 14 رقم';
}
if ($guardianRelationship !== '' && mb_strlen($guardianRelationship) > 50) {
$errors[] = 'صلة القرابة يجب ألا تتجاوز 50 حرف';
}
if (!empty($errors)) { if (!empty($errors)) {
$session->flash('_alerts', array_map(fn($e) => ['type' => 'error', 'message' => $e], $errors)); $session->flash('_alerts', array_map(fn($e) => ['type' => 'error', 'message' => $e], $errors));
$session->flash('_old_input', $request->all()); $session->flash('_old_input', $request->all());
...@@ -268,6 +295,8 @@ class PlayerController extends Controller ...@@ -268,6 +295,8 @@ class PlayerController extends Controller
$errors = []; $errors = [];
if ($fullNameAr === '') { if ($fullNameAr === '') {
$errors[] = 'الاسم بالعربي مطلوب'; $errors[] = 'الاسم بالعربي مطلوب';
} elseif (mb_strlen($fullNameAr) > 300) {
$errors[] = 'الاسم بالعربي يجب ألا يتجاوز 300 حرف';
} }
if ($playerType === '') { if ($playerType === '') {
$errors[] = 'نوع اللاعب مطلوب'; $errors[] = 'نوع اللاعب مطلوب';
...@@ -276,6 +305,36 @@ class PlayerController extends Controller ...@@ -276,6 +305,36 @@ class PlayerController extends Controller
$errors[] = 'رقم العضوية مطلوب للأعضاء'; $errors[] = 'رقم العضوية مطلوب للأعضاء';
} }
$validTypes = ['member', 'non_member'];
if ($playerType !== '' && !in_array($playerType, $validTypes, true)) {
$errors[] = 'نوع اللاعب غير صالح';
}
if ($fullNameEn !== '' && mb_strlen($fullNameEn) > 300) {
$errors[] = 'الاسم بالإنجليزي يجب ألا يتجاوز 300 حرف';
}
if ($nationalId !== '' && strlen($nationalId) > 14) {
$errors[] = 'الرقم القومي يجب ألا يتجاوز 14 رقم';
}
if ($phone !== '' && mb_strlen($phone) > 30) {
$errors[] = 'رقم الهاتف يجب ألا يتجاوز 30 حرف';
}
if ($email !== '' && mb_strlen($email) > 200) {
$errors[] = 'البريد الإلكتروني يجب ألا يتجاوز 200 حرف';
}
if ($guardianName !== '' && mb_strlen($guardianName) > 300) {
$errors[] = 'اسم ولي الأمر يجب ألا يتجاوز 300 حرف';
}
if ($guardianPhone !== '' && mb_strlen($guardianPhone) > 30) {
$errors[] = 'هاتف ولي الأمر يجب ألا يتجاوز 30 حرف';
}
if ($guardianNationalId !== '' && strlen($guardianNationalId) > 14) {
$errors[] = 'الرقم القومي لولي الأمر يجب ألا يتجاوز 14 رقم';
}
if ($guardianRelationship !== '' && mb_strlen($guardianRelationship) > 50) {
$errors[] = 'صلة القرابة يجب ألا تتجاوز 50 حرف';
}
if (!empty($errors)) { if (!empty($errors)) {
$session->flash('_alerts', array_map(fn($e) => ['type' => 'error', 'message' => $e], $errors)); $session->flash('_alerts', array_map(fn($e) => ['type' => 'error', 'message' => $e], $errors));
$session->flash('_old_input', $request->all()); $session->flash('_old_input', $request->all());
......
...@@ -19,11 +19,11 @@ $__template->layout('Layout.main'); ...@@ -19,11 +19,11 @@ $__template->layout('Layout.main');
<div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;"> <div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;">
<div> <div>
<label class="form-label">رقم العقد <span style="color:#DC2626;">*</span></label> <label class="form-label">رقم العقد <span style="color:#DC2626;">*</span></label>
<input type="text" name="contract_number" value="<?= e(old('contract_number') ?? '') ?>" class="form-input" dir="ltr" required placeholder="مثال: CTR-2026-001"> <input type="text" name="contract_number" value="<?= e(old('contract_number') ?? '') ?>" class="form-input" dir="ltr" required maxlength="50" placeholder="مثال: CTR-2026-001">
</div> </div>
<div> <div>
<label class="form-label">نوع العقد</label> <label class="form-label">نوع العقد <span style="color:#DC2626;">*</span></label>
<select name="contract_type" class="form-select"> <select name="contract_type" class="form-select" required>
<option value="revenue_share" <?= (old('contract_type') ?? '') === 'revenue_share' ? 'selected' : '' ?>>نسبة إيرادات</option> <option value="revenue_share" <?= (old('contract_type') ?? '') === 'revenue_share' ? 'selected' : '' ?>>نسبة إيرادات</option>
<option value="fixed_rent" <?= old('contract_type') === 'fixed_rent' ? 'selected' : '' ?>>إيجار ثابت</option> <option value="fixed_rent" <?= old('contract_type') === 'fixed_rent' ? 'selected' : '' ?>>إيجار ثابت</option>
<option value="hybrid" <?= old('contract_type') === 'hybrid' ? 'selected' : '' ?>>مختلط</option> <option value="hybrid" <?= old('contract_type') === 'hybrid' ? 'selected' : '' ?>>مختلط</option>
......
...@@ -19,15 +19,15 @@ $__template->layout('Layout.main'); ...@@ -19,15 +19,15 @@ $__template->layout('Layout.main');
<div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;"> <div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;">
<div> <div>
<label class="form-label">الكود <span style="color:#DC2626;">*</span></label> <label class="form-label">الكود <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code') ?? '') ?>" class="form-input" dir="ltr" required placeholder="مثال: ACAD_SWIM_01"> <input type="text" name="code" value="<?= e(old('code') ?? '') ?>" class="form-input" dir="ltr" required maxlength="30" placeholder="مثال: ACAD_SWIM_01">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar') ?? '') ?>" class="form-input" required> <input type="text" name="name_ar" value="<?= e(old('name_ar') ?? '') ?>" class="form-input" required maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="name_en" value="<?= e(old('name_en') ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="name_en" value="<?= e(old('name_en') ?? '') ?>" class="form-input" dir="ltr" maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">اللعبة / النشاط الرياضي <span style="color:#DC2626;">*</span></label> <label class="form-label">اللعبة / النشاط الرياضي <span style="color:#DC2626;">*</span></label>
...@@ -39,8 +39,8 @@ $__template->layout('Layout.main'); ...@@ -39,8 +39,8 @@ $__template->layout('Layout.main');
</select> </select>
</div> </div>
<div> <div>
<label class="form-label">نوع الأكاديمية</label> <label class="form-label">نوع الأكاديمية <span style="color:#DC2626;">*</span></label>
<select name="academy_type" class="form-select"> <select name="academy_type" class="form-select" required>
<option value="internal" <?= (old('academy_type') ?? '') === 'internal' ? 'selected' : '' ?>>داخلية</option> <option value="internal" <?= (old('academy_type') ?? '') === 'internal' ? 'selected' : '' ?>>داخلية</option>
<option value="external" <?= old('academy_type') === 'external' ? 'selected' : '' ?>>خارجية</option> <option value="external" <?= old('academy_type') === 'external' ? 'selected' : '' ?>>خارجية</option>
<option value="partnership" <?= old('academy_type') === 'partnership' ? 'selected' : '' ?>>شراكة</option> <option value="partnership" <?= old('academy_type') === 'partnership' ? 'selected' : '' ?>>شراكة</option>
...@@ -48,15 +48,15 @@ $__template->layout('Layout.main'); ...@@ -48,15 +48,15 @@ $__template->layout('Layout.main');
</div> </div>
<div> <div>
<label class="form-label">مسؤول التواصل</label> <label class="form-label">مسؤول التواصل</label>
<input type="text" name="contact_person" value="<?= e(old('contact_person') ?? '') ?>" class="form-input"> <input type="text" name="contact_person" value="<?= e(old('contact_person') ?? '') ?>" class="form-input" maxlength="200">
</div> </div>
<div> <div>
<label class="form-label">هاتف التواصل</label> <label class="form-label">هاتف التواصل</label>
<input type="text" name="contact_phone" value="<?= e(old('contact_phone') ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="contact_phone" value="<?= e(old('contact_phone') ?? '') ?>" class="form-input" dir="ltr" maxlength="30">
</div> </div>
<div> <div>
<label class="form-label">البريد الإلكتروني</label> <label class="form-label">البريد الإلكتروني</label>
<input type="email" name="contact_email" value="<?= e(old('contact_email') ?? '') ?>" class="form-input" dir="ltr"> <input type="email" name="contact_email" value="<?= e(old('contact_email') ?? '') ?>" class="form-input" dir="ltr" maxlength="200">
</div> </div>
<div style="grid-column:1 / -1;"> <div style="grid-column:1 / -1;">
<label class="form-label">الوصف</label> <label class="form-label">الوصف</label>
......
...@@ -19,15 +19,15 @@ $__template->layout('Layout.main'); ...@@ -19,15 +19,15 @@ $__template->layout('Layout.main');
<div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;"> <div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;">
<div> <div>
<label class="form-label">الكود <span style="color:#DC2626;">*</span></label> <label class="form-label">الكود <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code') ?? $academy['code'] ?? '') ?>" class="form-input" dir="ltr" required> <input type="text" name="code" value="<?= e(old('code') ?? $academy['code'] ?? '') ?>" class="form-input" dir="ltr" required maxlength="30">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar') ?? $academy['name_ar'] ?? '') ?>" class="form-input" required> <input type="text" name="name_ar" value="<?= e(old('name_ar') ?? $academy['name_ar'] ?? '') ?>" class="form-input" required maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="name_en" value="<?= e(old('name_en') ?? $academy['name_en'] ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="name_en" value="<?= e(old('name_en') ?? $academy['name_en'] ?? '') ?>" class="form-input" dir="ltr" maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">اللعبة / النشاط الرياضي <span style="color:#DC2626;">*</span></label> <label class="form-label">اللعبة / النشاط الرياضي <span style="color:#DC2626;">*</span></label>
...@@ -39,8 +39,8 @@ $__template->layout('Layout.main'); ...@@ -39,8 +39,8 @@ $__template->layout('Layout.main');
</select> </select>
</div> </div>
<div> <div>
<label class="form-label">نوع الأكاديمية</label> <label class="form-label">نوع الأكاديمية <span style="color:#DC2626;">*</span></label>
<select name="academy_type" class="form-select"> <select name="academy_type" class="form-select" required>
<option value="internal" <?= (old('academy_type') ?? $academy['academy_type'] ?? '') === 'internal' ? 'selected' : '' ?>>داخلية</option> <option value="internal" <?= (old('academy_type') ?? $academy['academy_type'] ?? '') === 'internal' ? 'selected' : '' ?>>داخلية</option>
<option value="external" <?= (old('academy_type') ?? $academy['academy_type'] ?? '') === 'external' ? 'selected' : '' ?>>خارجية</option> <option value="external" <?= (old('academy_type') ?? $academy['academy_type'] ?? '') === 'external' ? 'selected' : '' ?>>خارجية</option>
<option value="partnership" <?= (old('academy_type') ?? $academy['academy_type'] ?? '') === 'partnership' ? 'selected' : '' ?>>شراكة</option> <option value="partnership" <?= (old('academy_type') ?? $academy['academy_type'] ?? '') === 'partnership' ? 'selected' : '' ?>>شراكة</option>
...@@ -48,15 +48,15 @@ $__template->layout('Layout.main'); ...@@ -48,15 +48,15 @@ $__template->layout('Layout.main');
</div> </div>
<div> <div>
<label class="form-label">مسؤول التواصل</label> <label class="form-label">مسؤول التواصل</label>
<input type="text" name="contact_person" value="<?= e(old('contact_person') ?? $academy['contact_person'] ?? '') ?>" class="form-input"> <input type="text" name="contact_person" value="<?= e(old('contact_person') ?? $academy['contact_person'] ?? '') ?>" class="form-input" maxlength="200">
</div> </div>
<div> <div>
<label class="form-label">هاتف التواصل</label> <label class="form-label">هاتف التواصل</label>
<input type="text" name="contact_phone" value="<?= e(old('contact_phone') ?? $academy['contact_phone'] ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="contact_phone" value="<?= e(old('contact_phone') ?? $academy['contact_phone'] ?? '') ?>" class="form-input" dir="ltr" maxlength="30">
</div> </div>
<div> <div>
<label class="form-label">البريد الإلكتروني</label> <label class="form-label">البريد الإلكتروني</label>
<input type="email" name="contact_email" value="<?= e(old('contact_email') ?? $academy['contact_email'] ?? '') ?>" class="form-input" dir="ltr"> <input type="email" name="contact_email" value="<?= e(old('contact_email') ?? $academy['contact_email'] ?? '') ?>" class="form-input" dir="ltr" maxlength="200">
</div> </div>
<div style="grid-column:1 / -1;"> <div style="grid-column:1 / -1;">
<label class="form-label">الوصف</label> <label class="form-label">الوصف</label>
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">اسم الحاجز <span style="color:#DC2626;">*</span></label> <label class="form-label">اسم الحاجز <span style="color:#DC2626;">*</span></label>
<input type="text" name="booker_name" value="<?= e(old('booker_name')) ?>" class="form-input" required placeholder="اسم الشخص الحاجز"> <input type="text" name="booker_name" value="<?= e(old('booker_name')) ?>" class="form-input" required maxlength="300" placeholder="اسم الشخص الحاجز">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">نوع الحاجز</label> <label class="form-label">نوع الحاجز</label>
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">عدد المشاركين</label> <label class="form-label">عدد المشاركين</label>
<input type="number" name="participant_count" value="<?= e(old('participant_count', '1')) ?>" class="form-input" min="1" style="direction:ltr;text-align:left;"> <input type="number" name="participant_count" value="<?= e(old('participant_count', '1')) ?>" class="form-input" required min="1" step="1" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div class="form-group" style="margin-top:15px;"> <div class="form-group" style="margin-top:15px;">
......
...@@ -20,15 +20,15 @@ ...@@ -20,15 +20,15 @@
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">كود المدرب <span style="color:#DC2626;">*</span></label> <label class="form-label">كود المدرب <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code')) ?>" class="form-input" required placeholder="مثال: COACH-001" style="direction:ltr;text-align:left;text-transform:uppercase;"> <input type="text" name="code" value="<?= e(old('code')) ?>" class="form-input" required maxlength="30" placeholder="مثال: COACH-001" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="full_name_ar" value="<?= e(old('full_name_ar')) ?>" class="form-input" required placeholder="الاسم الكامل بالعربي"> <input type="text" name="full_name_ar" value="<?= e(old('full_name_ar')) ?>" class="form-input" required maxlength="300" placeholder="الاسم الكامل بالعربي">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="full_name_en" value="<?= e(old('full_name_en')) ?>" class="form-input" placeholder="Full name in English" style="direction:ltr;text-align:left;"> <input type="text" name="full_name_en" value="<?= e(old('full_name_en')) ?>" class="form-input" maxlength="300" placeholder="Full name in English" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;margin-top:15px;">
...@@ -39,11 +39,11 @@ ...@@ -39,11 +39,11 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الهاتف</label> <label class="form-label">الهاتف</label>
<input type="text" name="phone" value="<?= e(old('phone')) ?>" class="form-input" placeholder="01xxxxxxxxx" style="direction:ltr;text-align:left;"> <input type="text" name="phone" value="<?= e(old('phone')) ?>" class="form-input" maxlength="30" placeholder="01xxxxxxxxx" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">البريد الإلكتروني</label> <label class="form-label">البريد الإلكتروني</label>
<input type="email" name="email" value="<?= e(old('email')) ?>" class="form-input" placeholder="email@example.com" style="direction:ltr;text-align:left;"> <input type="email" name="email" value="<?= e(old('email')) ?>" class="form-input" maxlength="200" placeholder="email@example.com" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">تاريخ الميلاد</label> <label class="form-label">تاريخ الميلاد</label>
...@@ -73,8 +73,8 @@ ...@@ -73,8 +73,8 @@
<div style="padding:20px;"> <div style="padding:20px;">
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">نوع التوظيف</label> <label class="form-label">نوع التوظيف <span style="color:#DC2626;">*</span></label>
<select name="employment_type" class="form-select"> <select name="employment_type" class="form-select" required>
<option value="">-- اختر --</option> <option value="">-- اختر --</option>
<?php foreach ($employmentTypes as $key => $label): ?> <?php foreach ($employmentTypes as $key => $label): ?>
<option value="<?= e($key) ?>" <?= old('employment_type') === $key ? 'selected' : '' ?>><?= e($label) ?></option> <option value="<?= e($key) ?>" <?= old('employment_type') === $key ? 'selected' : '' ?>><?= e($label) ?></option>
...@@ -82,8 +82,8 @@ ...@@ -82,8 +82,8 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">نموذج الدفع</label> <label class="form-label">نموذج الدفع <span style="color:#DC2626;">*</span></label>
<select name="payment_model" class="form-select"> <select name="payment_model" class="form-select" required>
<option value="">-- اختر --</option> <option value="">-- اختر --</option>
<?php foreach ($paymentModels as $key => $label): ?> <?php foreach ($paymentModels as $key => $label): ?>
<option value="<?= e($key) ?>" <?= old('payment_model') === $key ? 'selected' : '' ?>><?= e($label) ?></option> <option value="<?= e($key) ?>" <?= old('payment_model') === $key ? 'selected' : '' ?>><?= e($label) ?></option>
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">أقصى عدد مجموعات</label> <label class="form-label">أقصى عدد مجموعات</label>
<input type="number" name="max_groups" value="<?= e(old('max_groups')) ?>" class="form-input" min="0" placeholder="مثال: 5" style="direction:ltr;text-align:left;"> <input type="number" name="max_groups" value="<?= e(old('max_groups')) ?>" class="form-input" min="0" step="1" placeholder="مثال: 5" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
</div> </div>
......
...@@ -29,15 +29,15 @@ $val = function(string $field) use ($coach) { ...@@ -29,15 +29,15 @@ $val = function(string $field) use ($coach) {
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">كود المدرب <span style="color:#DC2626;">*</span></label> <label class="form-label">كود المدرب <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e($val('code')) ?>" class="form-input" required placeholder="مثال: COACH-001" style="direction:ltr;text-align:left;text-transform:uppercase;"> <input type="text" name="code" value="<?= e($val('code')) ?>" class="form-input" required maxlength="30" placeholder="مثال: COACH-001" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="full_name_ar" value="<?= e($val('full_name_ar')) ?>" class="form-input" required placeholder="الاسم الكامل بالعربي"> <input type="text" name="full_name_ar" value="<?= e($val('full_name_ar')) ?>" class="form-input" required maxlength="300" placeholder="الاسم الكامل بالعربي">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="full_name_en" value="<?= e($val('full_name_en')) ?>" class="form-input" placeholder="Full name in English" style="direction:ltr;text-align:left;"> <input type="text" name="full_name_en" value="<?= e($val('full_name_en')) ?>" class="form-input" maxlength="300" placeholder="Full name in English" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;margin-top:15px;">
...@@ -48,11 +48,11 @@ $val = function(string $field) use ($coach) { ...@@ -48,11 +48,11 @@ $val = function(string $field) use ($coach) {
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الهاتف</label> <label class="form-label">الهاتف</label>
<input type="text" name="phone" value="<?= e($val('phone')) ?>" class="form-input" placeholder="01xxxxxxxxx" style="direction:ltr;text-align:left;"> <input type="text" name="phone" value="<?= e($val('phone')) ?>" class="form-input" maxlength="30" placeholder="01xxxxxxxxx" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">البريد الإلكتروني</label> <label class="form-label">البريد الإلكتروني</label>
<input type="email" name="email" value="<?= e($val('email')) ?>" class="form-input" placeholder="email@example.com" style="direction:ltr;text-align:left;"> <input type="email" name="email" value="<?= e($val('email')) ?>" class="form-input" maxlength="200" placeholder="email@example.com" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">تاريخ الميلاد</label> <label class="form-label">تاريخ الميلاد</label>
...@@ -82,8 +82,8 @@ $val = function(string $field) use ($coach) { ...@@ -82,8 +82,8 @@ $val = function(string $field) use ($coach) {
<div style="padding:20px;"> <div style="padding:20px;">
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">نوع التوظيف</label> <label class="form-label">نوع التوظيف <span style="color:#DC2626;">*</span></label>
<select name="employment_type" class="form-select"> <select name="employment_type" class="form-select" required>
<option value="">-- اختر --</option> <option value="">-- اختر --</option>
<?php foreach ($employmentTypes as $key => $label): ?> <?php foreach ($employmentTypes as $key => $label): ?>
<option value="<?= e($key) ?>" <?= $val('employment_type') === $key ? 'selected' : '' ?>><?= e($label) ?></option> <option value="<?= e($key) ?>" <?= $val('employment_type') === $key ? 'selected' : '' ?>><?= e($label) ?></option>
...@@ -91,8 +91,8 @@ $val = function(string $field) use ($coach) { ...@@ -91,8 +91,8 @@ $val = function(string $field) use ($coach) {
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">نموذج الدفع</label> <label class="form-label">نموذج الدفع <span style="color:#DC2626;">*</span></label>
<select name="payment_model" class="form-select"> <select name="payment_model" class="form-select" required>
<option value="">-- اختر --</option> <option value="">-- اختر --</option>
<?php foreach ($paymentModels as $key => $label): ?> <?php foreach ($paymentModels as $key => $label): ?>
<option value="<?= e($key) ?>" <?= $val('payment_model') === $key ? 'selected' : '' ?>><?= e($label) ?></option> <option value="<?= e($key) ?>" <?= $val('payment_model') === $key ? 'selected' : '' ?>><?= e($label) ?></option>
...@@ -115,7 +115,7 @@ $val = function(string $field) use ($coach) { ...@@ -115,7 +115,7 @@ $val = function(string $field) use ($coach) {
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">أقصى عدد مجموعات</label> <label class="form-label">أقصى عدد مجموعات</label>
<input type="number" name="max_groups" value="<?= e($val('max_groups')) ?>" class="form-input" min="0" placeholder="مثال: 5" style="direction:ltr;text-align:left;"> <input type="number" name="max_groups" value="<?= e($val('max_groups')) ?>" class="form-input" min="0" step="1" placeholder="مثال: 5" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
</div> </div>
......
...@@ -20,22 +20,22 @@ ...@@ -20,22 +20,22 @@
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">كود النشاط <span style="color:#DC2626;">*</span></label> <label class="form-label">كود النشاط <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code')) ?>" class="form-input" required placeholder="مثال: FOOTBALL" style="direction:ltr;text-align:left;text-transform:uppercase;"> <input type="text" name="code" value="<?= e(old('code')) ?>" class="form-input" required maxlength="30" placeholder="مثال: FOOTBALL" style="direction:ltr;text-align:left;text-transform:uppercase;">
<small style="color:#9CA3AF;font-size:11px;">كود فريد بالإنجليزية لتمييز النشاط</small> <small style="color:#9CA3AF;font-size:11px;">كود فريد بالإنجليزية لتمييز النشاط</small>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar')) ?>" class="form-input" required placeholder="مثال: كرة القدم"> <input type="text" name="name_ar" value="<?= e(old('name_ar')) ?>" class="form-input" required maxlength="200" placeholder="مثال: كرة القدم">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:15px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="name_en" value="<?= e(old('name_en')) ?>" class="form-input" placeholder="e.g. Football" style="direction:ltr;text-align:left;"> <input type="text" name="name_en" value="<?= e(old('name_en')) ?>" class="form-input" maxlength="200" placeholder="e.g. Football" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">التصنيف</label> <label class="form-label">التصنيف <span style="color:#DC2626;">*</span></label>
<select name="category" class="form-select"> <select name="category" class="form-select" required>
<option value="">-- اختر التصنيف --</option> <option value="">-- اختر التصنيف --</option>
<?php foreach ($categories as $key => $label): ?> <?php foreach ($categories as $key => $label): ?>
<option value="<?= e($key) ?>" <?= old('category') === $key ? 'selected' : '' ?>><?= e($label) ?></option> <option value="<?= e($key) ?>" <?= old('category') === $key ? 'selected' : '' ?>><?= e($label) ?></option>
...@@ -43,8 +43,8 @@ ...@@ -43,8 +43,8 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">ترتيب العرض</label> <label class="form-label">ترتيب العرض <span style="color:#DC2626;">*</span></label>
<input type="number" name="sort_order" value="<?= e(old('sort_order', '0')) ?>" class="form-input" min="0" style="direction:ltr;text-align:left;"> <input type="number" name="sort_order" value="<?= e(old('sort_order', '0')) ?>" class="form-input" required min="0" step="1" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px;">
......
...@@ -21,21 +21,21 @@ ...@@ -21,21 +21,21 @@
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">كود النشاط <span style="color:#DC2626;">*</span></label> <label class="form-label">كود النشاط <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code') ?: $discipline->code) ?>" class="form-input" required style="direction:ltr;text-align:left;text-transform:uppercase;"> <input type="text" name="code" value="<?= e(old('code') ?: $discipline->code) ?>" class="form-input" required maxlength="30" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar') ?: $discipline->name_ar) ?>" class="form-input" required> <input type="text" name="name_ar" value="<?= e(old('name_ar') ?: $discipline->name_ar) ?>" class="form-input" required maxlength="200">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:15px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="name_en" value="<?= e(old('name_en') ?: ($discipline->name_en ?? '')) ?>" class="form-input" style="direction:ltr;text-align:left;"> <input type="text" name="name_en" value="<?= e(old('name_en') ?: ($discipline->name_en ?? '')) ?>" class="form-input" maxlength="200" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">التصنيف</label> <label class="form-label">التصنيف <span style="color:#DC2626;">*</span></label>
<select name="category" class="form-select"> <select name="category" class="form-select" required>
<option value="">-- اختر التصنيف --</option> <option value="">-- اختر التصنيف --</option>
<?php foreach ($categories as $key => $label): ?> <?php foreach ($categories as $key => $label): ?>
<option value="<?= e($key) ?>" <?= (old('category') ?: ($discipline->category ?? '')) === $key ? 'selected' : '' ?>><?= e($label) ?></option> <option value="<?= e($key) ?>" <?= (old('category') ?: ($discipline->category ?? '')) === $key ? 'selected' : '' ?>><?= e($label) ?></option>
...@@ -43,8 +43,8 @@ ...@@ -43,8 +43,8 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">ترتيب العرض</label> <label class="form-label">ترتيب العرض <span style="color:#DC2626;">*</span></label>
<input type="number" name="sort_order" value="<?= e(old('sort_order') ?: (string)($discipline->sort_order ?? 0)) ?>" class="form-input" min="0" style="direction:ltr;text-align:left;"> <input type="number" name="sort_order" value="<?= e(old('sort_order') ?: (string)($discipline->sort_order ?? 0)) ?>" class="form-input" required min="0" step="1" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px;">
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;">
<div> <div>
<label class="form-label">الكود <span style="color:#DC2626;">*</span></label> <label class="form-label">الكود <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code', '')) ?>" class="form-input" required placeholder="مثال: FAC-001"> <input type="text" name="code" value="<?= e(old('code', '')) ?>" class="form-input" required maxlength="30" placeholder="مثال: FAC-001" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div> <div>
<label class="form-label">نوع المنشأة <span style="color:#DC2626;">*</span></label> <label class="form-label">نوع المنشأة <span style="color:#DC2626;">*</span></label>
...@@ -30,11 +30,11 @@ ...@@ -30,11 +30,11 @@
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;">
<div> <div>
<label class="form-label">الاسم بالعربية <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربية <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar', '')) ?>" class="form-input" required> <input type="text" name="name_ar" value="<?= e(old('name_ar', '')) ?>" class="form-input" required maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالإنجليزية</label> <label class="form-label">الاسم بالإنجليزية</label>
<input type="text" name="name_en" value="<?= e(old('name_en', '')) ?>" class="form-input" dir="ltr"> <input type="text" name="name_en" value="<?= e(old('name_en', '')) ?>" class="form-input" maxlength="300" dir="ltr">
</div> </div>
</div> </div>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<div style="margin-bottom:15px;"> <div style="margin-bottom:15px;">
<label class="form-label">وصف الموقع</label> <label class="form-label">وصف الموقع</label>
<input type="text" name="location_description" value="<?= e(old('location_description', '')) ?>" class="form-input" placeholder="مثال: الدور الأول - جناح B"> <input type="text" name="location_description" value="<?= e(old('location_description', '')) ?>" class="form-input" maxlength="500" placeholder="مثال: الدور الأول - جناح B">
</div> </div>
<div style="background:#F9FAFB;border:1px solid #E5E7EB;border-radius:8px;padding:15px;margin-bottom:20px;"> <div style="background:#F9FAFB;border:1px solid #E5E7EB;border-radius:8px;padding:15px;margin-bottom:20px;">
......
...@@ -18,7 +18,7 @@ $opHours = $facility->getOperatingHours(); ...@@ -18,7 +18,7 @@ $opHours = $facility->getOperatingHours();
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;">
<div> <div>
<label class="form-label">الكود <span style="color:#DC2626;">*</span></label> <label class="form-label">الكود <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code', $facility->code)) ?>" class="form-input" required placeholder="مثال: FAC-001"> <input type="text" name="code" value="<?= e(old('code', $facility->code)) ?>" class="form-input" required maxlength="30" placeholder="مثال: FAC-001" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div> <div>
<label class="form-label">نوع المنشأة <span style="color:#DC2626;">*</span></label> <label class="form-label">نوع المنشأة <span style="color:#DC2626;">*</span></label>
...@@ -34,11 +34,11 @@ $opHours = $facility->getOperatingHours(); ...@@ -34,11 +34,11 @@ $opHours = $facility->getOperatingHours();
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;">
<div> <div>
<label class="form-label">الاسم بالعربية <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربية <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar', $facility->name_ar)) ?>" class="form-input" required> <input type="text" name="name_ar" value="<?= e(old('name_ar', $facility->name_ar)) ?>" class="form-input" required maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالإنجليزية</label> <label class="form-label">الاسم بالإنجليزية</label>
<input type="text" name="name_en" value="<?= e(old('name_en', $facility->name_en ?? '')) ?>" class="form-input" dir="ltr"> <input type="text" name="name_en" value="<?= e(old('name_en', $facility->name_en ?? '')) ?>" class="form-input" maxlength="300" dir="ltr">
</div> </div>
</div> </div>
...@@ -54,7 +54,7 @@ $opHours = $facility->getOperatingHours(); ...@@ -54,7 +54,7 @@ $opHours = $facility->getOperatingHours();
<div style="margin-bottom:15px;"> <div style="margin-bottom:15px;">
<label class="form-label">وصف الموقع</label> <label class="form-label">وصف الموقع</label>
<input type="text" name="location_description" value="<?= e(old('location_description', $facility->location_description ?? '')) ?>" class="form-input" placeholder="مثال: الدور الأول - جناح B"> <input type="text" name="location_description" value="<?= e(old('location_description', $facility->location_description ?? '')) ?>" class="form-input" maxlength="500" placeholder="مثال: الدور الأول - جناح B">
</div> </div>
<div style="background:#F9FAFB;border:1px solid #E5E7EB;border-radius:8px;padding:15px;margin-bottom:20px;"> <div style="background:#F9FAFB;border:1px solid #E5E7EB;border-radius:8px;padding:15px;margin-bottom:20px;">
......
...@@ -33,7 +33,7 @@ $dayNames = [ ...@@ -33,7 +33,7 @@ $dayNames = [
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;">
<div> <div>
<label class="form-label">اسم الفترة <span style="color:#DC2626;">*</span></label> <label class="form-label">اسم الفترة <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar', '')) ?>" class="form-input" required placeholder="مثال: فترة الذروة الصباحية"> <input type="text" name="name_ar" value="<?= e(old('name_ar', '')) ?>" class="form-input" required maxlength="100" placeholder="مثال: فترة الذروة الصباحية">
</div> </div>
<div> <div>
<label class="form-label">نوع الفترة <span style="color:#DC2626;">*</span></label> <label class="form-label">نوع الفترة <span style="color:#DC2626;">*</span></label>
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;">
<div> <div>
<label class="form-label">الكود <span style="color:#DC2626;">*</span></label> <label class="form-label">الكود <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code', $unit ? $unit->code : '')) ?>" class="form-input" required placeholder="مثال: LANE-01"> <input type="text" name="code" value="<?= e(old('code', $unit ? $unit->code : '')) ?>" class="form-input" required maxlength="30" placeholder="مثال: LANE-01" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div> <div>
<label class="form-label">نوع الوحدة <span style="color:#DC2626;">*</span></label> <label class="form-label">نوع الوحدة <span style="color:#DC2626;">*</span></label>
...@@ -36,11 +36,11 @@ ...@@ -36,11 +36,11 @@
<div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px;">
<div> <div>
<label class="form-label">الاسم بالعربية <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربية <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar', $unit ? $unit->name_ar : '')) ?>" class="form-input" required> <input type="text" name="name_ar" value="<?= e(old('name_ar', $unit ? $unit->name_ar : '')) ?>" class="form-input" required maxlength="200">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالإنجليزية</label> <label class="form-label">الاسم بالإنجليزية</label>
<input type="text" name="name_en" value="<?= e(old('name_en', $unit ? ($unit->name_en ?? '') : '')) ?>" class="form-input" dir="ltr"> <input type="text" name="name_en" value="<?= e(old('name_en', $unit ? ($unit->name_en ?? '') : '')) ?>" class="form-input" maxlength="200" dir="ltr">
</div> </div>
</div> </div>
...@@ -56,13 +56,13 @@ ...@@ -56,13 +56,13 @@
</div> </div>
<div> <div>
<label class="form-label">السعة القصوى <span style="color:#DC2626;">*</span></label> <label class="form-label">السعة القصوى <span style="color:#DC2626;">*</span></label>
<input type="number" name="max_capacity" value="<?= e(old('max_capacity', $unit ? (string) $unit->max_capacity : '1')) ?>" class="form-input" required min="1"> <input type="number" name="max_capacity" value="<?= e(old('max_capacity', $unit ? (string) $unit->max_capacity : '1')) ?>" class="form-input" required min="1" step="1">
</div> </div>
</div> </div>
<div style="margin-bottom:20px;"> <div style="margin-bottom:20px;">
<label class="form-label">ترتيب العرض</label> <label class="form-label">ترتيب العرض</label>
<input type="number" name="sort_order" value="<?= e(old('sort_order', $unit ? (string) $unit->sort_order : '0')) ?>" class="form-input" style="max-width:150px;" min="0"> <input type="number" name="sort_order" value="<?= e(old('sort_order', $unit ? (string) $unit->sort_order : '0')) ?>" class="form-input" style="max-width:150px;" min="0" step="1">
<small style="color:#6B7280;display:block;margin-top:4px;">رقم أصغر = يظهر أولاً</small> <small style="color:#6B7280;display:block;margin-top:4px;">رقم أصغر = يظهر أولاً</small>
</div> </div>
......
...@@ -20,15 +20,15 @@ ...@@ -20,15 +20,15 @@
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">كود المجموعة <span style="color:#DC2626;">*</span></label> <label class="form-label">كود المجموعة <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code')) ?>" class="form-input" required placeholder="مثال: GRP-SWIM-01" style="direction:ltr;text-align:left;text-transform:uppercase;"> <input type="text" name="code" value="<?= e(old('code')) ?>" class="form-input" required maxlength="30" placeholder="مثال: GRP-SWIM-01" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar')) ?>" class="form-input" required placeholder="مثال: مجموعة السباحة أ"> <input type="text" name="name_ar" value="<?= e(old('name_ar')) ?>" class="form-input" required maxlength="300" placeholder="مثال: مجموعة السباحة أ">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="name_en" value="<?= e(old('name_en')) ?>" class="form-input" placeholder="e.g. Swimming Group A" style="direction:ltr;text-align:left;"> <input type="text" name="name_en" value="<?= e(old('name_en')) ?>" class="form-input" maxlength="300" placeholder="e.g. Swimming Group A" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px;">
...@@ -63,20 +63,20 @@ ...@@ -63,20 +63,20 @@
<div style="padding:20px;"> <div style="padding:20px;">
<div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">الحد الأدنى</label> <label class="form-label">الحد الأدنى <span style="color:#DC2626;">*</span></label>
<input type="number" name="min_capacity" value="<?= e(old('min_capacity', '5')) ?>" class="form-input" min="1" style="direction:ltr;text-align:left;"> <input type="number" name="min_capacity" value="<?= e(old('min_capacity', '5')) ?>" class="form-input" required min="1" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الحد الأقصى</label> <label class="form-label">الحد الأقصى <span style="color:#DC2626;">*</span></label>
<input type="number" name="max_capacity" value="<?= e(old('max_capacity', '20')) ?>" class="form-input" min="1" style="direction:ltr;text-align:left;"> <input type="number" name="max_capacity" value="<?= e(old('max_capacity', '20')) ?>" class="form-input" required min="1" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">رسوم شهرية (أعضاء)</label> <label class="form-label">رسوم شهرية (أعضاء) <span style="color:#DC2626;">*</span></label>
<input type="number" name="monthly_fee_member" value="<?= e(old('monthly_fee_member', '0')) ?>" class="form-input" min="0" step="0.01" style="direction:ltr;text-align:left;"> <input type="number" name="monthly_fee_member" value="<?= e(old('monthly_fee_member', '0')) ?>" class="form-input" required min="0" step="0.01" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">رسوم شهرية (غير أعضاء)</label> <label class="form-label">رسوم شهرية (غير أعضاء) <span style="color:#DC2626;">*</span></label>
<input type="number" name="monthly_fee_nonmember" value="<?= e(old('monthly_fee_nonmember', '0')) ?>" class="form-input" min="0" step="0.01" style="direction:ltr;text-align:left;"> <input type="number" name="monthly_fee_nonmember" value="<?= e(old('monthly_fee_nonmember', '0')) ?>" class="form-input" required min="0" step="0.01" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
</div> </div>
......
...@@ -20,15 +20,15 @@ ...@@ -20,15 +20,15 @@
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">كود المجموعة <span style="color:#DC2626;">*</span></label> <label class="form-label">كود المجموعة <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code', $group->code)) ?>" class="form-input" required style="direction:ltr;text-align:left;text-transform:uppercase;"> <input type="text" name="code" value="<?= e(old('code', $group->code)) ?>" class="form-input" required maxlength="30" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar', $group->name_ar)) ?>" class="form-input" required> <input type="text" name="name_ar" value="<?= e(old('name_ar', $group->name_ar)) ?>" class="form-input" required maxlength="300">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="name_en" value="<?= e(old('name_en', $group->name_en ?? '')) ?>" class="form-input" style="direction:ltr;text-align:left;"> <input type="text" name="name_en" value="<?= e(old('name_en', $group->name_en ?? '')) ?>" class="form-input" maxlength="300" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px;">
...@@ -63,20 +63,20 @@ ...@@ -63,20 +63,20 @@
<div style="padding:20px;"> <div style="padding:20px;">
<div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">الحد الأدنى</label> <label class="form-label">الحد الأدنى <span style="color:#DC2626;">*</span></label>
<input type="number" name="min_capacity" value="<?= e(old('min_capacity', $group->min_capacity ?? '5')) ?>" class="form-input" min="1" style="direction:ltr;text-align:left;"> <input type="number" name="min_capacity" value="<?= e(old('min_capacity', $group->min_capacity ?? '5')) ?>" class="form-input" required min="1" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الحد الأقصى</label> <label class="form-label">الحد الأقصى <span style="color:#DC2626;">*</span></label>
<input type="number" name="max_capacity" value="<?= e(old('max_capacity', $group->max_capacity ?? '20')) ?>" class="form-input" min="1" style="direction:ltr;text-align:left;"> <input type="number" name="max_capacity" value="<?= e(old('max_capacity', $group->max_capacity ?? '20')) ?>" class="form-input" required min="1" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">رسوم شهرية (أعضاء)</label> <label class="form-label">رسوم شهرية (أعضاء) <span style="color:#DC2626;">*</span></label>
<input type="number" name="monthly_fee_member" value="<?= e(old('monthly_fee_member', $group->monthly_fee_member ?? '0')) ?>" class="form-input" min="0" step="0.01" style="direction:ltr;text-align:left;"> <input type="number" name="monthly_fee_member" value="<?= e(old('monthly_fee_member', $group->monthly_fee_member ?? '0')) ?>" class="form-input" required min="0" step="0.01" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">رسوم شهرية (غير أعضاء)</label> <label class="form-label">رسوم شهرية (غير أعضاء) <span style="color:#DC2626;">*</span></label>
<input type="number" name="monthly_fee_nonmember" value="<?= e(old('monthly_fee_nonmember', $group->monthly_fee_nonmember ?? '0')) ?>" class="form-input" min="0" step="0.01" style="direction:ltr;text-align:left;"> <input type="number" name="monthly_fee_nonmember" value="<?= e(old('monthly_fee_nonmember', $group->monthly_fee_nonmember ?? '0')) ?>" class="form-input" required min="0" step="0.01" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
</div> </div>
......
...@@ -32,11 +32,11 @@ $__template->layout('Layout.main'); ...@@ -32,11 +32,11 @@ $__template->layout('Layout.main');
</div> </div>
<div> <div>
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="full_name_ar" value="<?= e(old('full_name_ar') ?? '') ?>" class="form-input" required> <input type="text" name="full_name_ar" value="<?= e(old('full_name_ar') ?? '') ?>" class="form-input" required maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="full_name_en" value="<?= e(old('full_name_en') ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="full_name_en" value="<?= e(old('full_name_en') ?? '') ?>" class="form-input" dir="ltr" maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">الرقم القومي</label> <label class="form-label">الرقم القومي</label>
...@@ -58,11 +58,11 @@ $__template->layout('Layout.main'); ...@@ -58,11 +58,11 @@ $__template->layout('Layout.main');
</div> </div>
<div> <div>
<label class="form-label">الهاتف</label> <label class="form-label">الهاتف</label>
<input type="text" name="phone" value="<?= e(old('phone') ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="phone" value="<?= e(old('phone') ?? '') ?>" class="form-input" dir="ltr" maxlength="30">
</div> </div>
<div> <div>
<label class="form-label">البريد الإلكتروني</label> <label class="form-label">البريد الإلكتروني</label>
<input type="email" name="email" value="<?= e(old('email') ?? '') ?>" class="form-input" dir="ltr"> <input type="email" name="email" value="<?= e(old('email') ?? '') ?>" class="form-input" dir="ltr" maxlength="200">
</div> </div>
</div> </div>
</div> </div>
...@@ -75,11 +75,11 @@ $__template->layout('Layout.main'); ...@@ -75,11 +75,11 @@ $__template->layout('Layout.main');
<div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;"> <div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;">
<div> <div>
<label class="form-label">اسم ولي الأمر</label> <label class="form-label">اسم ولي الأمر</label>
<input type="text" name="guardian_name" value="<?= e(old('guardian_name') ?? '') ?>" class="form-input"> <input type="text" name="guardian_name" value="<?= e(old('guardian_name') ?? '') ?>" class="form-input" maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">هاتف ولي الأمر</label> <label class="form-label">هاتف ولي الأمر</label>
<input type="text" name="guardian_phone" value="<?= e(old('guardian_phone') ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="guardian_phone" value="<?= e(old('guardian_phone') ?? '') ?>" class="form-input" dir="ltr" maxlength="30">
</div> </div>
<div> <div>
<label class="form-label">الرقم القومي لولي الأمر</label> <label class="form-label">الرقم القومي لولي الأمر</label>
......
...@@ -32,11 +32,11 @@ $__template->layout('Layout.main'); ...@@ -32,11 +32,11 @@ $__template->layout('Layout.main');
</div> </div>
<div> <div>
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="full_name_ar" value="<?= e(old('full_name_ar') ?? $player['full_name_ar'] ?? '') ?>" class="form-input" required> <input type="text" name="full_name_ar" value="<?= e(old('full_name_ar') ?? $player['full_name_ar'] ?? '') ?>" class="form-input" required maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="full_name_en" value="<?= e(old('full_name_en') ?? $player['full_name_en'] ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="full_name_en" value="<?= e(old('full_name_en') ?? $player['full_name_en'] ?? '') ?>" class="form-input" dir="ltr" maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">الرقم القومي</label> <label class="form-label">الرقم القومي</label>
...@@ -57,11 +57,11 @@ $__template->layout('Layout.main'); ...@@ -57,11 +57,11 @@ $__template->layout('Layout.main');
</div> </div>
<div> <div>
<label class="form-label">الهاتف</label> <label class="form-label">الهاتف</label>
<input type="text" name="phone" value="<?= e(old('phone') ?? $player['phone'] ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="phone" value="<?= e(old('phone') ?? $player['phone'] ?? '') ?>" class="form-input" dir="ltr" maxlength="30">
</div> </div>
<div> <div>
<label class="form-label">البريد الإلكتروني</label> <label class="form-label">البريد الإلكتروني</label>
<input type="email" name="email" value="<?= e(old('email') ?? $player['email'] ?? '') ?>" class="form-input" dir="ltr"> <input type="email" name="email" value="<?= e(old('email') ?? $player['email'] ?? '') ?>" class="form-input" dir="ltr" maxlength="200">
</div> </div>
</div> </div>
</div> </div>
...@@ -74,11 +74,11 @@ $__template->layout('Layout.main'); ...@@ -74,11 +74,11 @@ $__template->layout('Layout.main');
<div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;"> <div style="padding:20px;display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:15px;">
<div> <div>
<label class="form-label">اسم ولي الأمر</label> <label class="form-label">اسم ولي الأمر</label>
<input type="text" name="guardian_name" value="<?= e(old('guardian_name') ?? $player['guardian_name'] ?? '') ?>" class="form-input"> <input type="text" name="guardian_name" value="<?= e(old('guardian_name') ?? $player['guardian_name'] ?? '') ?>" class="form-input" maxlength="300">
</div> </div>
<div> <div>
<label class="form-label">هاتف ولي الأمر</label> <label class="form-label">هاتف ولي الأمر</label>
<input type="text" name="guardian_phone" value="<?= e(old('guardian_phone') ?? $player['guardian_phone'] ?? '') ?>" class="form-input" dir="ltr"> <input type="text" name="guardian_phone" value="<?= e(old('guardian_phone') ?? $player['guardian_phone'] ?? '') ?>" class="form-input" dir="ltr" maxlength="30">
</div> </div>
<div> <div>
<label class="form-label">الرقم القومي لولي الأمر</label> <label class="form-label">الرقم القومي لولي الأمر</label>
......
...@@ -95,11 +95,11 @@ ...@@ -95,11 +95,11 @@
</div> </div>
<div> <div>
<label class="form-label">حجم المجموعة (من)</label> <label class="form-label">حجم المجموعة (من)</label>
<input type="number" name="group_size_min" class="form-input" min="1" value="<?= e(old('group_size_min', '1')) ?>" required> <input type="number" name="group_size_min" class="form-input" min="1" step="1" value="<?= e(old('group_size_min', '1')) ?>" required>
</div> </div>
<div> <div>
<label class="form-label">حجم المجموعة (إلى)</label> <label class="form-label">حجم المجموعة (إلى)</label>
<input type="number" name="group_size_max" class="form-input" min="1" value="<?= e(old('group_size_max', '1')) ?>" required> <input type="number" name="group_size_max" class="form-input" min="1" step="1" value="<?= e(old('group_size_max', '1')) ?>" required>
</div> </div>
<div> <div>
<label class="form-label">سعر العضو (للفرد/ساعة)</label> <label class="form-label">سعر العضو (للفرد/ساعة)</label>
......
...@@ -20,15 +20,15 @@ ...@@ -20,15 +20,15 @@
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">كود البرنامج <span style="color:#DC2626;">*</span></label> <label class="form-label">كود البرنامج <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code')) ?>" class="form-input" required placeholder="مثال: PROG-SWIM-01" style="direction:ltr;text-align:left;text-transform:uppercase;"> <input type="text" name="code" value="<?= e(old('code')) ?>" class="form-input" required maxlength="30" placeholder="مثال: PROG-SWIM-01" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar')) ?>" class="form-input" required placeholder="مثال: برنامج السباحة للمبتدئين"> <input type="text" name="name_ar" value="<?= e(old('name_ar')) ?>" class="form-input" required maxlength="300" placeholder="مثال: برنامج السباحة للمبتدئين">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="name_en" value="<?= e(old('name_en')) ?>" class="form-input" placeholder="e.g. Beginner Swimming" style="direction:ltr;text-align:left;"> <input type="text" name="name_en" value="<?= e(old('name_en')) ?>" class="form-input" maxlength="300" placeholder="e.g. Beginner Swimming" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:15px;">
...@@ -51,8 +51,8 @@ ...@@ -51,8 +51,8 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">نوع البرنامج</label> <label class="form-label">نوع البرنامج <span style="color:#DC2626;">*</span></label>
<select name="program_type" class="form-select"> <select name="program_type" class="form-select" required>
<option value="">-- اختر النوع --</option> <option value="">-- اختر النوع --</option>
<?php foreach ($programTypes as $key => $label): ?> <?php foreach ($programTypes as $key => $label): ?>
<option value="<?= e($key) ?>" <?= old('program_type') === $key ? 'selected' : '' ?>><?= e($label) ?></option> <option value="<?= e($key) ?>" <?= old('program_type') === $key ? 'selected' : '' ?>><?= e($label) ?></option>
...@@ -73,11 +73,11 @@ ...@@ -73,11 +73,11 @@
<div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">العمر من</label> <label class="form-label">العمر من</label>
<input type="number" name="age_from" value="<?= e(old('age_from')) ?>" class="form-input" min="0" max="99" placeholder="4" style="direction:ltr;text-align:left;"> <input type="number" name="age_from" value="<?= e(old('age_from')) ?>" class="form-input" min="0" max="99" step="1" placeholder="4" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">العمر إلى</label> <label class="form-label">العمر إلى</label>
<input type="number" name="age_to" value="<?= e(old('age_to')) ?>" class="form-input" min="0" max="99" placeholder="12" style="direction:ltr;text-align:left;"> <input type="number" name="age_to" value="<?= e(old('age_to')) ?>" class="form-input" min="0" max="99" step="1" placeholder="12" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الجنس</label> <label class="form-label">الجنس</label>
...@@ -109,12 +109,12 @@ ...@@ -109,12 +109,12 @@
<div style="padding:20px;"> <div style="padding:20px;">
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">مدة الحصة (دقيقة)</label> <label class="form-label">مدة الحصة (دقيقة) <span style="color:#DC2626;">*</span></label>
<input type="number" name="session_duration_minutes" value="<?= e(old('session_duration_minutes')) ?>" class="form-input" min="15" max="300" placeholder="60" style="direction:ltr;text-align:left;"> <input type="number" name="session_duration_minutes" value="<?= e(old('session_duration_minutes')) ?>" class="form-input" required min="1" max="300" step="1" placeholder="60" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">عدد الحصص أسبوعياً</label> <label class="form-label">عدد الحصص أسبوعياً <span style="color:#DC2626;">*</span></label>
<input type="number" name="sessions_per_week" value="<?= e(old('sessions_per_week')) ?>" class="form-input" min="1" max="14" placeholder="3" style="direction:ltr;text-align:left;"> <input type="number" name="sessions_per_week" value="<?= e(old('sessions_per_week')) ?>" class="form-input" required min="1" max="14" step="1" placeholder="3" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div class="form-group" style="margin-top:15px;"> <div class="form-group" style="margin-top:15px;">
......
...@@ -20,15 +20,15 @@ ...@@ -20,15 +20,15 @@
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">كود البرنامج <span style="color:#DC2626;">*</span></label> <label class="form-label">كود البرنامج <span style="color:#DC2626;">*</span></label>
<input type="text" name="code" value="<?= e(old('code', $program->code)) ?>" class="form-input" required style="direction:ltr;text-align:left;text-transform:uppercase;"> <input type="text" name="code" value="<?= e(old('code', $program->code)) ?>" class="form-input" required maxlength="30" style="direction:ltr;text-align:left;text-transform:uppercase;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label> <label class="form-label">الاسم بالعربي <span style="color:#DC2626;">*</span></label>
<input type="text" name="name_ar" value="<?= e(old('name_ar', $program->name_ar)) ?>" class="form-input" required> <input type="text" name="name_ar" value="<?= e(old('name_ar', $program->name_ar)) ?>" class="form-input" required maxlength="300">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الاسم بالإنجليزي</label> <label class="form-label">الاسم بالإنجليزي</label>
<input type="text" name="name_en" value="<?= e(old('name_en', $program->name_en ?? '')) ?>" class="form-input" style="direction:ltr;text-align:left;"> <input type="text" name="name_en" value="<?= e(old('name_en', $program->name_en ?? '')) ?>" class="form-input" maxlength="300" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:15px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:15px;">
...@@ -51,8 +51,8 @@ ...@@ -51,8 +51,8 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">نوع البرنامج</label> <label class="form-label">نوع البرنامج <span style="color:#DC2626;">*</span></label>
<select name="program_type" class="form-select"> <select name="program_type" class="form-select" required>
<option value="">-- اختر النوع --</option> <option value="">-- اختر النوع --</option>
<?php foreach ($programTypes as $key => $label): ?> <?php foreach ($programTypes as $key => $label): ?>
<option value="<?= e($key) ?>" <?= old('program_type', $program->program_type ?? '') === $key ? 'selected' : '' ?>><?= e($label) ?></option> <option value="<?= e($key) ?>" <?= old('program_type', $program->program_type ?? '') === $key ? 'selected' : '' ?>><?= e($label) ?></option>
...@@ -73,11 +73,11 @@ ...@@ -73,11 +73,11 @@
<div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">العمر من</label> <label class="form-label">العمر من</label>
<input type="number" name="age_from" value="<?= e(old('age_from', $program->age_from ?? '')) ?>" class="form-input" min="0" max="99" style="direction:ltr;text-align:left;"> <input type="number" name="age_from" value="<?= e(old('age_from', $program->age_from ?? '')) ?>" class="form-input" min="0" max="99" step="1" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">العمر إلى</label> <label class="form-label">العمر إلى</label>
<input type="number" name="age_to" value="<?= e(old('age_to', $program->age_to ?? '')) ?>" class="form-input" min="0" max="99" style="direction:ltr;text-align:left;"> <input type="number" name="age_to" value="<?= e(old('age_to', $program->age_to ?? '')) ?>" class="form-input" min="0" max="99" step="1" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">الجنس</label> <label class="form-label">الجنس</label>
...@@ -109,12 +109,12 @@ ...@@ -109,12 +109,12 @@
<div style="padding:20px;"> <div style="padding:20px;">
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;">
<div class="form-group"> <div class="form-group">
<label class="form-label">مدة الحصة (دقيقة)</label> <label class="form-label">مدة الحصة (دقيقة) <span style="color:#DC2626;">*</span></label>
<input type="number" name="session_duration_minutes" value="<?= e(old('session_duration_minutes', $program->session_duration_minutes ?? '')) ?>" class="form-input" min="15" max="300" style="direction:ltr;text-align:left;"> <input type="number" name="session_duration_minutes" value="<?= e(old('session_duration_minutes', $program->session_duration_minutes ?? '')) ?>" class="form-input" required min="1" max="300" step="1" style="direction:ltr;text-align:left;">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">عدد الحصص أسبوعياً</label> <label class="form-label">عدد الحصص أسبوعياً <span style="color:#DC2626;">*</span></label>
<input type="number" name="sessions_per_week" value="<?= e(old('sessions_per_week', $program->sessions_per_week ?? '')) ?>" class="form-input" min="1" max="14" style="direction:ltr;text-align:left;"> <input type="number" name="sessions_per_week" value="<?= e(old('sessions_per_week', $program->sessions_per_week ?? '')) ?>" class="form-input" required min="1" max="14" step="1" style="direction:ltr;text-align:left;">
</div> </div>
</div> </div>
<div class="form-group" style="margin-top:15px;"> <div class="form-group" style="margin-top:15px;">
......
...@@ -4,55 +4,40 @@ declare(strict_types=1); ...@@ -4,55 +4,40 @@ declare(strict_types=1);
return function (\App\Core\Database $db): void { return function (\App\Core\Database $db): void {
$now = date('Y-m-d H:i:s'); $now = date('Y-m-d H:i:s');
$permissions = [ $permissionKeys = [
// Treasury (sub-treasury) permissions 'treasury.view_dashboard',
['key' => 'treasury.view_dashboard', 'name_ar' => 'لوحة تحكم الخزنة الفرعية', 'name_en' => 'Sub-Treasury Dashboard', 'module' => 'treasury'], 'treasury.collect_payment',
['key' => 'treasury.collect_payment', 'name_ar' => 'تحصيل مدفوعات', 'name_en' => 'Collect Payments', 'module' => 'treasury'], 'treasury.open_session',
['key' => 'treasury.open_session', 'name_ar' => 'فتح وردية', 'name_en' => 'Open Session', 'module' => 'treasury'], 'treasury.close_session',
['key' => 'treasury.close_session', 'name_ar' => 'إغلاق وردية', 'name_en' => 'Close Session', 'module' => 'treasury'], 'treasury.initiate_settlement',
['key' => 'treasury.initiate_settlement', 'name_ar' => 'إجراء تسوية للخزنة الرئيسية', 'name_en' => 'Initiate Settlement', 'module' => 'treasury'], 'treasury.view_custody',
['key' => 'treasury.view_custody', 'name_ar' => 'عرض رصيد العهدة', 'name_en' => 'View Custody Balance', 'module' => 'treasury'], 'treasury.view_sessions',
['key' => 'treasury.view_sessions', 'name_ar' => 'عرض الورديات', 'name_en' => 'View Sessions', 'module' => 'treasury'], 'treasury.view_settlements',
['key' => 'treasury.view_settlements', 'name_ar' => 'عرض التسويات', 'name_en' => 'View Settlements', 'module' => 'treasury'], 'cashier.receive_settlement',
// Cashier enhancements 'cashier.manage_deposits',
['key' => 'cashier.receive_settlement', 'name_ar' => 'استلام تسوية من خزنة فرعية', 'name_en' => 'Receive Sub-Treasury Settlement', 'module' => 'cashier'], 'cashier.confirm_deposit',
['key' => 'cashier.manage_deposits', 'name_ar' => 'إدارة إيداعات البنك', 'name_en' => 'Manage Bank Deposits', 'module' => 'cashier'], 'cashier.view_custody',
['key' => 'cashier.confirm_deposit', 'name_ar' => 'تأكيد إيداع بنكي', 'name_en' => 'Confirm Bank Deposit', 'module' => 'cashier'],
['key' => 'cashier.view_custody', 'name_ar' => 'عرض رصيد عهدة الخزنة الرئيسية', 'name_en' => 'View Main Treasury Custody', 'module' => 'cashier'],
]; ];
foreach ($permissions as $perm) { // Assign all treasury/cashier permissions to super_admin role
$exists = $db->selectOne("SELECT 1 FROM permissions WHERE `key` = ?", [$perm['key']]); $superAdmin = $db->selectOne("SELECT id FROM roles WHERE role_code = 'super_admin'");
if (!$exists) { if (!$superAdmin) {
$db->insert('permissions', [ return;
'key' => $perm['key'],
'name_ar' => $perm['name_ar'],
'name_en' => $perm['name_en'],
'module' => $perm['module'],
'created_at' => $now,
'updated_at' => $now,
]);
}
} }
// Assign all treasury permissions to super_admin role $roleId = (int) $superAdmin['id'];
$superAdmin = $db->selectOne("SELECT id FROM roles WHERE role_code = 'super_admin'");
if ($superAdmin) { foreach ($permissionKeys as $key) {
foreach ($permissions as $perm) { $exists = $db->selectOne(
$permRecord = $db->selectOne("SELECT id FROM permissions WHERE `key` = ?", [$perm['key']]); "SELECT 1 FROM role_permissions WHERE role_id = ? AND permission_key = ?",
if ($permRecord) { [$roleId, $key]
$exists = $db->selectOne( );
"SELECT 1 FROM role_permissions WHERE role_id = ? AND permission_id = ?", if (!$exists) {
[$superAdmin['id'], $permRecord['id']] $db->insert('role_permissions', [
); 'role_id' => $roleId,
if (!$exists) { 'permission_key' => $key,
$db->insert('role_permissions', [ 'granted_at' => $now,
'role_id' => $superAdmin['id'], ]);
'permission_id' => $permRecord['id'],
'created_at' => $now,
]);
}
}
} }
} }
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment