Commit e2e93ed2 authored by Mahmoud Aglan's avatar Mahmoud Aglan

Disable 19 old sport/activity modules replaced by unified SportsActivity

Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 2054907b
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
// ────────────────────────────────────────────────────────────
// Academies — Permissions only (sidebar owned by Disciplines bootstrap.php)
// ────────────────────────────────────────────────────────────
PermissionRegistry::register('academies', [
'academy.view' => ['ar' => 'عرض الأكاديميات', 'en' => 'View Academies'],
'academy.manage' => ['ar' => 'إدارة الأكاديميات', 'en' => 'Manage Academies'],
'academy.enroll' => ['ar' => 'تسجيل في الأكاديمية', 'en' => 'Enroll in Academy'],
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
// ────────────────────────────────────────────────────────────
// Academy Contracts — Permissions & Sidebar Menu
// ────────────────────────────────────────────────────────────
PermissionRegistry::register('academy_contracts', [
'academy_contract.view' => ['ar' => 'عرض عقود الأكاديميات', 'en' => 'View Academy Contracts'],
'academy_contract.manage' => ['ar' => 'إدارة عقود الأكاديميات', 'en' => 'Manage Academy Contracts'],
'academy_contract.settlement' => ['ar' => 'تسويات عقود الأكاديميات', 'en' => 'Academy Contract Settlements'],
]);
MenuRegistry::register('academy_contracts', [
'label_ar' => 'عقود الأكاديميات',
'label_en' => 'Academy Contracts',
'icon' => 'file-signature',
'route' => '/academy-contracts',
'permission' => 'academy_contract.view',
'order' => 398,
'parent' => 'sports_activities',
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
use App\Core\EventBus;
use App\Core\App;
use App\Core\Logger;
PermissionRegistry::register('achievements', [
'achievement.view' => ['ar' => 'عرض الإنجازات', 'en' => 'View Achievements'],
'achievement.manage' => ['ar' => 'إدارة الإنجازات', 'en' => 'Manage Achievements'],
]);
MenuRegistry::register('achievements', [
'label_ar' => 'الإنجازات',
'icon' => 'award',
'route' => '/achievements',
'permission' => 'achievement.view',
'order' => 420,
'parent' => 'sports_activities',
]);
// ─────────────────────────────────────────────────────────────
// Event Listeners for Achievement Checks
// ─────────────────────────────────────────────────────────────
// Attendance recorded → check attendance achievements
EventBus::listen('session_attendance.recorded', function (array $data) {
try {
$playerId = (int) ($data['player_id'] ?? 0);
if ($playerId <= 0) return;
\App\Modules\Achievements\Services\AchievementEngine::checkAttendanceAchievements($playerId);
} catch (\Throwable $e) {
Logger::error("Achievement attendance check error: " . $e->getMessage());
}
}, 10);
// Player evaluation submitted → check performance achievements
EventBus::listen('player.evaluation_submitted', function (array $data) {
try {
$playerId = (int) ($data['player_id'] ?? 0);
if ($playerId <= 0) return;
\App\Modules\Achievements\Services\AchievementEngine::checkAndAward($playerId, 'evaluation_submitted', $data);
} catch (\Throwable $e) {
Logger::error("Achievement evaluation check error: " . $e->getMessage());
}
}, 10);
// Tournament match won → check competition achievements
EventBus::listen('tournament.match_won', function (array $data) {
try {
$playerId = (int) ($data['player_id'] ?? 0);
if ($playerId <= 0) return;
\App\Modules\Achievements\Services\AchievementEngine::checkAndAward($playerId, 'tournament_win', $data);
} catch (\Throwable $e) {
Logger::error("Achievement tournament check error: " . $e->getMessage());
}
}, 10);
// Fitness test recorded → check fitness achievements
EventBus::listen('player.fitness_test_recorded', function (array $data) {
try {
$playerId = (int) ($data['player_id'] ?? 0);
if ($playerId <= 0) return;
\App\Modules\Achievements\Services\AchievementEngine::checkAndAward($playerId, 'fitness_test', $data);
} catch (\Throwable $e) {
Logger::error("Achievement fitness check error: " . $e->getMessage());
}
}, 10);
// Injury recovered → check recovery achievements
EventBus::listen('player.injury_recovered', function (array $data) {
try {
$playerId = (int) ($data['player_id'] ?? 0);
if ($playerId <= 0) return;
\App\Modules\Achievements\Services\AchievementEngine::checkAndAward($playerId, 'injury_recovered', $data);
} catch (\Throwable $e) {
Logger::error("Achievement recovery check error: " . $e->getMessage());
}
}, 10);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
PermissionRegistry::register('activity_subscriptions', [
'activity_sub.view' => ['ar' => 'عرض اشتراكات الأنشطة', 'en' => 'View Activity Subscriptions'],
'activity_sub.collect' => ['ar' => 'تحصيل اشتراكات الأنشطة', 'en' => 'Collect Activity Subscriptions'],
'activity_sub.exempt' => ['ar' => 'إعفاء اشتراكات الأنشطة', 'en' => 'Exempt Activity Subscriptions'],
'activity_sub.generate' => ['ar' => 'توليد اشتراكات الأنشطة', 'en' => 'Generate Activity Subscriptions'],
'activity_sub.manage_pricing' => ['ar' => 'إدارة تسعير الأنشطة', 'en' => 'Manage Activity Pricing'],
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('coaches', [
'coach.view' => ['ar' => 'عرض المدربين', 'en' => 'View Coaches'],
'coach.manage' => ['ar' => 'إدارة المدربين', 'en' => 'Manage Coaches'],
'coach.rate' => ['ar' => 'تقييم المدربين', 'en' => 'Rate Coaches'],
'coach.manage_ratings' => ['ar' => 'إدارة تقييمات المدربين','en' => 'Manage Coach Ratings'],
'coach.view_performance' => ['ar' => 'عرض أداء المدربين', 'en' => 'View Coach Performance'],
]);
MenuRegistry::register('coaches', [
'label_ar' => 'المدربين',
'icon' => 'users',
'route' => '/coaches',
'permission' => 'coach.view',
'order' => 397,
'parent' => 'sports_activities',
]);
MenuRegistry::register('coach_ratings', [
'label_ar' => 'تقييمات المدربين',
'icon' => 'star',
'route' => '/coach-ratings',
'permission' => 'coach.rate',
'order' => 398,
'parent' => 'sports_activities',
]);
MenuRegistry::register('coach_performance', [
'label_ar' => 'أداء المدربين',
'icon' => 'bar-chart-3',
'route' => '/coach-performance',
'permission' => 'coach.view_performance',
'order' => 399,
'parent' => 'sports_activities',
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry;
// ────────────────────────────────────────────────────────────
// Sports Activities — Parent sidebar menu with all 7 module children
// This file owns the entire sports_activities menu group.
// ────────────────────────────────────────────────────────────
MenuRegistry::register('sports_activities', [
'label_ar' => 'الأنشطة الرياضية',
'label_en' => 'Sports Activities',
'icon' => 'activity',
'route' => '/sports-dashboard',
'permission' => 'discipline.view',
'parent' => null,
'order' => 395,
'children' => [
['label_ar' => 'لوحة التحكم', 'label_en' => 'Dashboard', 'route' => '/sports-dashboard', 'permission' => 'discipline.view', 'order' => 1],
['label_ar' => 'المراية (عرض مباشر)', 'label_en' => 'Mirror Display', 'route' => '/mirror', 'permission' => 'facility.mirror', 'order' => 2],
['label_ar' => 'الأنشطة والأكاديميات', 'label_en' => 'Disciplines & Academies', 'route' => '/disciplines', 'permission' => 'discipline.view', 'order' => 3],
['label_ar' => 'المدربين', 'label_en' => 'Coaches', 'route' => '/coaches', 'permission' => 'coach.view', 'order' => 4],
['label_ar' => 'المجموعات واللاعبين', 'label_en' => 'Groups & Players', 'route' => '/training-groups', 'permission' => 'training_group.view', 'order' => 5],
['label_ar' => 'الحصص والحضور', 'label_en' => 'Sessions & Attendance', 'route' => '/sessions', 'permission' => 'session.view', 'order' => 6],
['label_ar' => 'المرافق والشبكات', 'label_en' => 'Facilities & Grids', 'route' => '/facility-grids', 'permission' => 'facility_grid.view', 'order' => 7],
['label_ar' => 'الحجوزات', 'label_en' => 'Reservations', 'route' => '/reservations', 'permission' => 'reservation.view', 'order' => 8],
['label_ar' => 'التأجير المؤسسي', 'label_en' => 'Corporate Rentals', 'route' => '/rentals', 'permission' => 'rental.view', 'order' => 9],
['label_ar' => 'حمام السباحة', 'label_en' => 'Pool Management', 'route' => '/pool', 'permission' => 'pool.view', 'order' => 10],
['label_ar' => 'الاشتراكات والتسعير', 'label_en' => 'Subscriptions & Pricing', 'route' => '/activity-subscriptions', 'permission' => 'activity_sub.view', 'order' => 11],
['label_ar' => 'العقود والتسويات', 'label_en' => 'Contracts & Settlements', 'route' => '/academy-contracts', 'permission' => 'academy_contract.view', 'order' => 12],
['label_ar' => 'قائمة الانتظار', 'label_en' => 'Waitlist', 'route' => '/waitlist', 'permission' => 'waitlist.view', 'order' => 13],
],
]);
PermissionRegistry::register('disciplines', [
'discipline.view' => ['ar' => 'عرض الأنشطة الرياضية', 'en' => 'View Disciplines'],
'discipline.manage' => ['ar' => 'إدارة الأنشطة الرياضية', 'en' => 'Manage Disciplines'],
'waitlist.view' => ['ar' => 'عرض قائمة الانتظار', 'en' => 'View Waitlist'],
'waitlist.manage' => ['ar' => 'إدارة قائمة الانتظار', 'en' => 'Manage Waitlist'],
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('facility_dashboards', [
'facility.dashboard' => ['ar' => 'لوحة المرفق', 'en' => 'Facility Dashboard'],
'facility.mirror' => ['ar' => 'المراية', 'en' => 'Mirror Display'],
]);
MenuRegistry::register('facility_mirror', [
'label_ar' => 'المراية (عرض مباشر)',
'icon' => 'monitor',
'route' => '/mirror',
'permission' => 'facility.mirror',
'order' => 396,
'parent' => 'sports_activities',
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
PermissionRegistry::register('facility_grids', [
'facility_grid.view' => ['ar' => 'عرض شبكات المرافق', 'en' => 'View Facility Grids'],
'facility_grid.manage' => ['ar' => 'إدارة شبكات المرافق', 'en' => 'Manage Facility Grids'],
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry;
// ────────────────────────────────────────────────────────────
// Match Center — Live match tracking & score entry
// ────────────────────────────────────────────────────────────
MenuRegistry::register('match_center', [
'label_ar' => 'مركز المباريات',
'label_en' => 'Match Center',
'icon' => 'futbol',
'route' => '/match-center',
'permission' => 'match_center.view',
'parent' => 'sports_activities',
'order' => 720,
]);
PermissionRegistry::register('match_center', [
'match_center.view' => ['ar' => 'عرض مركز المباريات', 'en' => 'View Match Center'],
'match_center.manage' => ['ar' => 'إدارة المباريات', 'en' => 'Manage Matches'],
'match_center.live_entry' => ['ar' => 'إدخال بيانات مباشرة', 'en' => 'Live Match Entry'],
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry;
// ────────────────────────────────────────────────────────────
// News — Club news articles and announcements
// ────────────────────────────────────────────────────────────
MenuRegistry::register('news', [
'label_ar' => 'الأخبار',
'label_en' => 'News',
'icon' => 'newspaper',
'route' => '/news',
'permission' => 'news.view',
'parent' => 'sports_activities',
'order' => 730,
]);
PermissionRegistry::register('news', [
'news.view' => ['ar' => 'عرض الأخبار', 'en' => 'View News'],
'news.manage' => ['ar' => 'إدارة الأخبار', 'en' => 'Manage News'],
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('player_affairs', [
'player.view' => ['ar' => 'عرض اللاعبين', 'en' => 'View Players'],
'player.search' => ['ar' => 'بحث عن لاعبين', 'en' => 'Search Players'],
'player.register' => ['ar' => 'تسجيل لاعب', 'en' => 'Register Player'],
'player.edit' => ['ar' => 'تعديل بيانات لاعب', 'en' => 'Edit Player'],
'player.manage_card' => ['ar' => 'إدارة كارنيه اللاعب', 'en' => 'Manage Player Card'],
'player.view_medical' => ['ar' => 'عرض السجل الطبي', 'en' => 'View Medical Records'],
'player.manage_medical' => ['ar' => 'إدارة السجل الطبي', 'en' => 'Manage Medical Records'],
'player.approve_medical' => ['ar' => 'اعتماد السجل الطبي', 'en' => 'Approve Medical Records'],
'player.record_attendance' => ['ar' => 'تسجيل الحضور', 'en' => 'Record Attendance'],
'player.evaluate' => ['ar' => 'تقييم اللاعبين', 'en' => 'Evaluate Players'],
'player.manage_injuries' => ['ar' => 'إدارة إصابات اللاعبين', 'en' => 'Manage Player Injuries'],
'player.manage_fitness' => ['ar' => 'إدارة اختبارات اللياقة', 'en' => 'Manage Fitness Tests'],
]);
MenuRegistry::register('player_injuries', [
'label_ar' => 'إصابات اللاعبين',
'icon' => 'heart-pulse',
'route' => '/injuries',
'permission' => 'player.manage_injuries',
'order' => 393,
'parent' => 'sports_activities',
]);
MenuRegistry::register('fitness_tests', [
'label_ar' => 'اختبارات اللياقة',
'icon' => 'activity',
'route' => '/fitness-tests',
'permission' => 'player.manage_fitness',
'order' => 394,
'parent' => 'sports_activities',
]);
// ── Cross-module event listeners for the sports system ──
require_once __DIR__ . '/EventListeners.php';
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('playground', 'إدارة الملاعب', [
'playground.view' => 'عرض الملاعب',
'playground.manage' => 'إدارة الملاعب',
'playground.schedule' => 'إدارة جداول الملاعب',
'playground.attendance' => 'تسجيل حضور الملاعب',
'playground.dashboard' => 'لوحة تحكم الملاعب',
]);
MenuRegistry::register('playground', [
'label' => 'الملاعب',
'icon' => 'bi-geo-alt',
'route' => '/playgrounds',
'permission' => 'playground.view',
'order' => 35,
'children' => [
['label' => 'قائمة الملاعب', 'route' => '/playgrounds', 'permission' => 'playground.view'],
['label' => 'لوحة التحكم الرياضية', 'route' => '/sports-dashboard', 'permission' => 'playground.dashboard'],
],
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('pool_management', [
'pool.view' => ['ar' => 'عرض حمام السباحة', 'en' => 'View Pool'],
'pool.manage' => ['ar' => 'إدارة حمام السباحة', 'en' => 'Manage Pool'],
'pool.book' => ['ar' => 'حجز حمام السباحة', 'en' => 'Book Pool'],
]);
MenuRegistry::register('pool_management', [
'label_ar' => 'حمام السباحة',
'icon' => 'waves',
'route' => '/pool',
'permission' => 'pool.view',
'order' => 401,
'parent' => 'sports_activities',
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
PermissionRegistry::register('rentals', [
'rental.view' => ['ar' => 'عرض التأجير المؤسسي', 'en' => 'View Corporate Rentals'],
'rental.manage_entity' => ['ar' => 'إدارة جهات التأجير', 'en' => 'Manage Rental Entities'],
'rental.approve' => ['ar' => 'اعتماد عقود التأجير', 'en' => 'Approve Rental Contracts'],
'rental.manage_contract'=> ['ar' => 'إدارة عقود التأجير', 'en' => 'Manage Rental Contracts'],
'rental.manage_deposit' => ['ar' => 'إدارة تأمينات التأجير', 'en' => 'Manage Rental Deposits'],
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('sessions', [
'session.view' => ['ar' => 'عرض الحصص التدريبية', 'en' => 'View Training Sessions'],
'session.manage' => ['ar' => 'إدارة الحصص التدريبية', 'en' => 'Manage Training Sessions'],
'session.attendance' => ['ar' => 'تسجيل الحضور والغياب', 'en' => 'Record Session Attendance'],
'session.view_feedback' => ['ar' => 'عرض تقييمات الجلسات', 'en' => 'View Session Feedback'],
]);
MenuRegistry::register('sessions', [
'label_ar' => 'الحصص التدريبية',
'icon' => 'calendar-days',
'route' => '/sessions',
'permission' => 'session.view',
'order' => 400,
'parent' => 'sports_activities',
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
PermissionRegistry::register('sports', [
'sports.view' => ['ar' => 'عرض العضوية الرياضية', 'en' => 'View Sports Membership'],
'sports.add' => ['ar' => 'تسجيل عضوية رياضية', 'en' => 'Register Sports Membership'],
'sports.convert' => ['ar' => 'تحويل عضو رياضي', 'en' => 'Convert Sports Member'],
]);
\ No newline at end of file
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('sports_dashboard', [
'sports_dashboard.view' => ['ar' => 'عرض لوحة المعلومات الرياضية', 'en' => 'View Sports Dashboard'],
'sports_dashboard.export' => ['ar' => 'تصدير التقارير', 'en' => 'Export Reports'],
]);
MenuRegistry::register('sports_dashboard', [
'label_ar' => 'لوحة المعلومات الرياضية',
'icon' => 'chart-bar',
'route' => '/sports-dashboard',
'permission' => 'sports_dashboard.view',
'parent' => 'sports_activities',
'order' => 700,
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('training', [
'training.submit_feedback' => ['ar' => 'تقديم تقييم الحصة', 'en' => 'Submit Session Feedback'],
'training.view_feedback' => ['ar' => 'عرض تقييمات الحصص', 'en' => 'View Session Feedback'],
]);
MenuRegistry::register('training_feedback', [
'label_ar' => 'تقييمات الحصص',
'label_en' => 'Session Feedback',
'icon' => 'message-square',
'route' => null,
'permission' => 'training.view_feedback',
'order' => 401,
'parent' => 'sports_activities',
]);
// Module disabled — replaced by SportsActivity module
<?php
declare(strict_types=1);
use App\Core\Registries\PermissionRegistry;
use App\Core\Registries\MenuRegistry;
PermissionRegistry::register('training_groups', [
'training_group.view' => ['ar' => 'عرض المجموعات التدريبية', 'en' => 'View Training Groups'],
'training_group.manage' => ['ar' => 'إدارة المجموعات التدريبية', 'en' => 'Manage Training Groups'],
]);
MenuRegistry::register('training_groups', [
'label_ar' => 'المجموعات التدريبية',
'icon' => 'users',
'route' => '/training-groups',
'permission' => 'training_group.view',
'order' => 399,
'parent' => 'sports_activities',
'children' => [
['label_ar' => 'المجموعات', 'label_en' => 'Groups', 'route' => '/training-groups', 'permission' => 'training_group.view', 'order' => 1],
['label_ar' => 'طلبات النقل', 'label_en' => 'Transfer Requests', 'route' => '/transfer-requests', 'permission' => 'training_group.manage', 'order' => 2],
['label_ar' => 'قائمة الانتظار', 'label_en' => 'Waiting List', 'route' => '/waiting-list', 'permission' => 'training_group.view', 'order' => 3],
],
]);
// Module disabled — replaced by SportsActivity module
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