['code'=>'GYMNASTICS','name_ar'=>'الجمباز','name_en'=>'Gymnastics','category'=>'individual','icon'=>'move','desc'=>'الجمباز الفني والإيقاعي','sort'=>8],
['code'=>'POOL-MAIN','name_ar'=>'حمام السباحة الأوليمبي','name_en'=>'Olympic Swimming Pool','type'=>'pool','disc'=>'SWIMMING','location'=>'المبنى الرياضي — الطابق الأرضي','grid_rows'=>4,'grid_cols'=>6],
['code'=>'FIELD-MAIN','name_ar'=>'ملعب كرة القدم الطبيعي','name_en'=>'Main Football Pitch','type'=>'pitch','disc'=>'FOOTBALL','location'=>'الملاعب الخارجية — شمال النادي','grid_rows'=>null,'grid_cols'=>null],
['code'=>'FIELD-5ASIDE','name_ar'=>'ملعب كرة القدم الخماسي','name_en'=>'5-a-Side Football Pitch','type'=>'pitch','disc'=>'FOOTBALL','location'=>'الملاعب الخارجية — بجوار الملعب الرئيسي','grid_rows'=>null,'grid_cols'=>null],
['code'=>'HALL-GYM','name_ar'=>'صالة الجمنازيوم','name_en'=>'Gymnasium Hall','type'=>'gym','disc'=>'GYMNASTICS','location'=>'المبنى الرياضي — الطابق الثاني','grid_rows'=>null,'grid_cols'=>null],
['code'=>'TRACK-RUN','name_ar'=>'تراك الجري','name_en'=>'Running Track','type'=>'track','disc'=>'CYCLING','location'=>'المنطقة الخارجية — محيط الملاعب','grid_rows'=>null,'grid_cols'=>null],
['code'=>'TRACK-CYCLE','name_ar'=>'تراك الدراجات والتزحلق','name_en'=>'Cycling & Skating Track','type'=>'track','disc'=>'CYCLING','location'=>'المنطقة الخارجية — غرب النادي','grid_rows'=>null,'grid_cols'=>null],
];
$facIds=[];
foreach($facilitiesas$f){
$existing=$db->selectOne("SELECT id FROM sa_facilities WHERE code = ?",[$f['code']]);
if(!$existing){
$data=[
'code'=>$f['code'],
'name_ar'=>$f['name_ar'],
'name_en'=>$f['name_en'],
'facility_type'=>$f['type'],
'discipline_id'=>$discIds[$f['disc']],
'location_description'=>$f['location'],
'operating_hours_json'=>$opHours,
'pool_grid_rows'=>$f['grid_rows'],
'pool_grid_cols'=>$f['grid_cols'],
'is_active'=>1,
'is_archived'=>0,
'branch_id'=>1,
'created_at'=>$ts,
'updated_at'=>$ts,
];
$db->insert('sa_facilities',$data);
$facIds[$f['code']]=(int)$db->selectOne("SELECT LAST_INSERT_ID() as id",[])['id'];
['fac'=>'FIELD-MAIN','code'=>'PITCH-MAIN','name_ar'=>'الملعب الطبيعي كامل','name_en'=>'Full Pitch','type'=>'pitch','mode'=>'exclusive','cap'=>22,'sort'=>1,'dim'=>['length'=>100,'width'=>68],'cfg'=>['surface'=>'natural_grass']],
['fac'=>'HALL-BOWLING','code'=>'BOWL-LANE-1','name_ar'=>'حارة بولينج 1','name_en'=>'Bowling Lane 1','type'=>'lane','mode'=>'exclusive','cap'=>6,'sort'=>1,'dim'=>['length'=>18.29],'cfg'=>['auto_scoring'=>true]],
['fac'=>'HALL-BOWLING','code'=>'BOWL-LANE-2','name_ar'=>'حارة بولينج 2','name_en'=>'Bowling Lane 2','type'=>'lane','mode'=>'exclusive','cap'=>6,'sort'=>2,'dim'=>['length'=>18.29],'cfg'=>['auto_scoring'=>true]],
['fac'=>'HALL-BOWLING','code'=>'BOWL-LANE-3','name_ar'=>'حارة بولينج 3','name_en'=>'Bowling Lane 3','type'=>'lane','mode'=>'exclusive','cap'=>6,'sort'=>3,'dim'=>['length'=>18.29],'cfg'=>['auto_scoring'=>true]],
['fac'=>'HALL-BOWLING','code'=>'BOWL-LANE-4','name_ar'=>'حارة بولينج 4','name_en'=>'Bowling Lane 4','type'=>'lane','mode'=>'exclusive','cap'=>6,'sort'=>4,'dim'=>['length'=>18.29],'cfg'=>['auto_scoring'=>true]],
['code'=>'COACH-001','name_ar'=>'أحمد محمد حسن','name_en'=>'Ahmed Mohamed Hassan','nid'=>'28501011234567','phone'=>'01001234501','email'=>'ahmed.swim@club.com','dob'=>'1985-01-01','gender'=>'male','type'=>'staff','payment'=>'per_session','hourly'=>200,'session'=>200,'monthly'=>null,'max_groups'=>6,'certs'=>['شهادة تدريب سباحة دولية','إنقاذ مائي']],
['code'=>'COACH-002','name_ar'=>'محمد عبدالله','name_en'=>'Mohamed Abdullah','nid'=>'28703151234567','phone'=>'01001234505','email'=>'mohamed.foot@club.com','dob'=>'1987-03-15','gender'=>'male','type'=>'staff','payment'=>'per_session','hourly'=>250,'session'=>250,'monthly'=>null,'max_groups'=>5,'certs'=>['رخصة تدريب C من الاتحاد المصري','دبلوم التربية الرياضية']],
['code'=>'COACH-003','name_ar'=>'سارة أحمد','name_en'=>'Sara Ahmed','nid'=>'29005201234567','phone'=>'01001234506','email'=>'sara.gym@club.com','dob'=>'1990-05-20','gender'=>'female','type'=>'staff','payment'=>'monthly_fixed','hourly'=>null,'session'=>null,'monthly'=>8000,'max_groups'=>4,'certs'=>['بكالوريوس تربية رياضية — جمباز','حكم دولي جمباز']],
['code'=>'COACH-005','name_ar'=>'أميرة فتحي','name_en'=>'Amira Fathy','nid'=>'29112251234567','phone'=>'01001234508','email'=>'amira.swim@club.com','dob'=>'1991-12-25','gender'=>'female','type'=>'staff','payment'=>'per_session','hourly'=>50,'session'=>50,'monthly'=>null,'max_groups'=>8,'certs'=>['شهادة تدريب سباحة أطفال','إنقاذ مائي']],
['code'=>'COACH-006','name_ar'=>'عمر سعيد','name_en'=>'Omar Said','nid'=>'28604141234567','phone'=>'01001234509','email'=>'omar.karate@club.com','dob'=>'1986-04-14','gender'=>'male','type'=>'contract','payment'=>'per_session','hourly'=>200,'session'=>200,'monthly'=>null,'max_groups'=>5,'certs'=>['حزام أسود دان 4','مدرب كاراتيه دولي WKF']],
['code'=>'COACH-007','name_ar'=>'يوسف إبراهيم','name_en'=>'Youssef Ibrahim','nid'=>'29207071234567','phone'=>'01001234510','email'=>'youssef.foot@club.com','dob'=>'1992-07-07','gender'=>'male','type'=>'freelance','payment'=>'per_session','hourly'=>300,'session'=>300,'monthly'=>null,'max_groups'=>3,'certs'=>['رخصة تدريب B من الاتحاد المصري','لاعب سابق بالدوري الممتاز']],
['code'=>'ACD-SWIM','name_ar'=>'أكاديمية السباحة','name_en'=>'Swimming Academy','disc'=>'SWIMMING','type'=>'internal','contact'=>'أحمد محمد حسن','phone'=>'01001234501','email'=>'swim.academy@club.com','desc'=>'أكاديمية السباحة الرسمية لنادي الهادي شيراتون — تعليم وتدريب جميع المستويات'],
['code'=>'ACD-FOOT','name_ar'=>'أكاديمية كرة القدم','name_en'=>'Football Academy','disc'=>'FOOTBALL','type'=>'internal','contact'=>'محمد عبدالله','phone'=>'01001234505','email'=>'football.academy@club.com','desc'=>'أكاديمية كرة القدم — تطوير المواهب الشابة'],
['code'=>'ACD-COMBAT','name_ar'=>'أكاديمية الفنون القتالية','name_en'=>'Combat Arts Academy','disc'=>'KARATE','type'=>'external','contact'=>'عمر سعيد','phone'=>'01001234509','email'=>'combat.academy@club.com','desc'=>'أكاديمية الفنون القتالية — كاراتيه وفنون دفاع عن النفس'],
];
$academyIds=[];
foreach($academiesas$a){
$existing=$db->selectOne("SELECT id FROM sa_academies WHERE code = ?",[$a['code']]);
if(!$existing){
$db->insert('sa_academies',[
'code'=>$a['code'],
'name_ar'=>$a['name_ar'],
'name_en'=>$a['name_en'],
'discipline_id'=>$discIds[$a['disc']],
'academy_type'=>$a['type'],
'contact_person'=>$a['contact'],
'contact_phone'=>$a['phone'],
'contact_email'=>$a['email'],
'description_ar'=>$a['desc'],
'logo_path'=>null,
'is_active'=>1,
'is_archived'=>0,
'branch_id'=>1,
'created_at'=>$ts,
'updated_at'=>$ts,
]);
$academyIds[$a['code']]=(int)$db->selectOne("SELECT LAST_INSERT_ID() as id",[])['id'];
['code'=>'PRG-SWIM-BEG','name_ar'=>'تعليم سباحة — مبتدئين','name_en'=>'Swimming Beginners','disc'=>'SWIMMING','academy'=>'ACD-SWIM','type'=>'training','age_from'=>6,'age_to'=>10,'gender'=>null,'skill'=>'beginner','desc'=>'تعليم أساسيات السباحة للأطفال من سن 6 إلى 10 سنوات','duration'=>45,'per_week'=>3],
['code'=>'PRG-FOOT-JR','name_ar'=>'كرة قدم — ناشئين','name_en'=>'Football Juniors','disc'=>'FOOTBALL','academy'=>'ACD-FOOT','type'=>'training','age_from'=>8,'age_to'=>12,'gender'=>'male','skill'=>'beginner','desc'=>'تدريب كرة القدم للناشئين — أساسيات اللعب والمهارات','duration'=>60,'per_week'=>3],
['code'=>'PRG-FOOT-YTH','name_ar'=>'كرة قدم — شباب','name_en'=>'Football Youth','disc'=>'FOOTBALL','academy'=>'ACD-FOOT','type'=>'competitive','age_from'=>12,'age_to'=>18,'gender'=>'male','skill'=>'intermediate','desc'=>'فريق الشباب — إعداد بدني وتكتيكي متقدم','duration'=>90,'per_week'=>4],
['code'=>'PRG-KARATE-ALL','name_ar'=>'كاراتيه جميع المستويات','name_en'=>'Karate All Levels','disc'=>'KARATE','academy'=>'ACD-COMBAT','type'=>'training','age_from'=>6,'age_to'=>16,'gender'=>null,'skill'=>'beginner','desc'=>'تدريب الكاراتيه من الحزام الأبيض حتى الأسود — كاتا وكوميتيه','duration'=>60,'per_week'=>3],
];
$programIds=[];
foreach($programsas$p){
$existing=$db->selectOne("SELECT id FROM sa_programs WHERE code = ?",[$p['code']]);
['code'=>'GRP-FJ-A','name_ar'=>'ناشئين قدم أ','name_en'=>'Football Juniors A','program'=>'PRG-FOOT-JR','coach'=>'COACH-002','min'=>10,'max'=>20,'count'=>15,'fee_m'=>400,'fee_nm'=>600],
['code'=>'GRP-FJ-B','name_ar'=>'ناشئين قدم ب','name_en'=>'Football Juniors B','program'=>'PRG-FOOT-JR','coach'=>'COACH-007','min'=>10,'max'=>20,'count'=>12,'fee_m'=>400,'fee_nm'=>600],
['type'=>'member','member_id'=>101,'serial'=>'SA-2025-0001','name_ar'=>'يوسف أحمد إبراهيم','name_en'=>'Youssef Ahmed Ibrahim','nid'=>'31503151234567','dob'=>'2015-03-15','gender'=>'male','phone'=>null,'guardian'=>'أحمد إبراهيم','guardian_phone'=>'01012345001','guardian_nid'=>'28001011234567','guardian_rel'=>'father'],
['type'=>'member','member_id'=>102,'serial'=>'SA-2025-0002','name_ar'=>'مريم خالد حسن','name_en'=>'Mariam Khaled Hassan','nid'=>'31407221234567','dob'=>'2014-07-22','gender'=>'female','phone'=>null,'guardian'=>'خالد حسن','guardian_phone'=>'01012345002','guardian_nid'=>'28201021234567','guardian_rel'=>'father'],
['type'=>'member','member_id'=>103,'serial'=>'SA-2025-0003','name_ar'=>'عمر محمود سعيد','name_en'=>'Omar Mahmoud Said','nid'=>'31201101234567','dob'=>'2012-01-10','gender'=>'male','phone'=>null,'guardian'=>'محمود سعيد','guardian_phone'=>'01012345003','guardian_nid'=>'28301031234567','guardian_rel'=>'father'],
['type'=>'member','member_id'=>104,'serial'=>'SA-2025-0004','name_ar'=>'فاطمة علي إبراهيم','name_en'=>'Fatma Ali Ibrahim','nid'=>'31011051234567','dob'=>'2010-11-05','gender'=>'female','phone'=>'01112345004','guardian'=>'علي إبراهيم','guardian_phone'=>'01012345004','guardian_nid'=>'28401041234567','guardian_rel'=>'father'],
['type'=>'member','member_id'=>105,'serial'=>'SA-2025-0005','name_ar'=>'أحمد حسام الدين','name_en'=>'Ahmed Hossam Eldin','nid'=>'30906181234567','dob'=>'2009-06-18','gender'=>'male','phone'=>'01112345005','guardian'=>'حسام الدين محمد','guardian_phone'=>'01012345005','guardian_nid'=>'28501051234567','guardian_rel'=>'father'],