exec($sql); // Migration for existing tables try { $db->exec("ALTER TABLE insurance_companies ADD COLUMN IF NOT EXISTS email VARCHAR(255)"); $db->exec("ALTER TABLE insurance_companies ADD COLUMN IF NOT EXISTS phone VARCHAR(50)"); } catch (Exception $e) {} try { $db->exec("ALTER TABLE patients ADD COLUMN IF NOT EXISTS insurance_company_id INT NULL"); $db->exec("ALTER TABLE patients ADD COLUMN IF NOT EXISTS policy_number VARCHAR(100) NULL"); $db->exec("ALTER TABLE patients ADD CONSTRAINT fk_patient_insurance FOREIGN KEY (insurance_company_id) REFERENCES insurance_companies(id) ON DELETE SET NULL"); } catch (Exception $e) {} try { $db->exec("ALTER TABLE bills ADD COLUMN IF NOT EXISTS insurance_covered DECIMAL(10, 2) DEFAULT 0.00"); $db->exec("ALTER TABLE bills ADD COLUMN IF NOT EXISTS patient_payable DECIMAL(10, 2) DEFAULT 0.00"); } catch (Exception $e) {} // Seed departments $stmt = $db->query("SELECT COUNT(*) FROM departments"); if ($stmt->fetchColumn() == 0) { $db->exec("INSERT INTO departments (id, name_en, name_ar) VALUES (1, 'Cardiology', 'قسم القلب'), (2, 'Pediatrics', 'طب الأطفال'), (3, 'Emergency', 'الطوارئ'), (4, 'Neurology', 'الأعصاب')"); } // Seed doctors $stmt = $db->query("SELECT COUNT(*) FROM doctors"); if ($stmt->fetchColumn() == 0) { $db->exec("INSERT INTO doctors (id, name_en, name_ar, specialization_en, specialization_ar, department_id) VALUES (1, 'Dr. Ahmed Ali', 'د. أحمد علي', 'Cardiologist', 'طبيب قلب', 1), (2, 'Dr. Sarah Smith', 'د. سارة سميث', 'Pediatrician', 'طبيب أطفال', 2), (3, 'Dr. John Doe', 'د. جون دو', 'Neurologist', 'طبيب أعصاب', 4)"); } // Seed insurance companies $stmt = $db->query("SELECT COUNT(*) FROM insurance_companies"); if ($stmt->fetchColumn() == 0) { $db->exec("INSERT INTO insurance_companies (name_en, name_ar, contact_info) VALUES ('Bupa Arabia', 'بوبا العربية', '920000456'), ('Tawuniya', 'التعاونية', '920019990'), ('MedGulf', 'ميدغلف', '8004414444')"); } echo "Database setup completed successfully."; } catch (PDOException $e) { die("Database setup failed: " . $e->getMessage()); }