-- ===========================================
-- تحديث قاعدة البيانات - Database Update
-- نفّذ هذا الملف لتطبيق التحديثات على تثبيت موجود
-- Run: mysql -u root maintenance_db < database_update.sql
-- ===========================================

USE maintenance_db;

-- جدول القطاعات (إن لم يكن موجوداً)
CREATE TABLE IF NOT EXISTS sectors (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT IGNORE INTO sectors (name) VALUES ('اهلي'), ('حكومي'), ('مركز جراحي');

-- إضافة أعمدة for_hospitals و for_clinics للقطاعات (يمكن تجاهل الخطأ إن وُجدت مسبقاً)
ALTER TABLE sectors ADD COLUMN for_hospitals TINYINT(1) DEFAULT 1;
ALTER TABLE sectors ADD COLUMN for_clinics TINYINT(1) DEFAULT 1;

-- تعديل عمود sector في المستشفيات من ENUM إلى VARCHAR
ALTER TABLE hospitals MODIFY sector VARCHAR(100) NOT NULL;

-- إضافة محافظة دهوك إن لم تكن موجودة (محافظات العراق الـ 18)
INSERT IGNORE INTO governorates (name_ar, name_en) VALUES ('دهوك', 'Dohuk');

-- تحويل جداول النصوص إلى utf8mb4 (إصلاح مشكلة التشفير مع العربية)
ALTER TABLE device_names CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE device_models CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE customers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE companies CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE engineers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE governorates CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE devices CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- جدول سجل النشاطات (مستخدم شنو سواه ووقت الحدث)
CREATE TABLE IF NOT EXISTS activity_log (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NULL,
    username VARCHAR(50) NULL,
    action VARCHAR(50) NOT NULL,
    entity_type VARCHAR(100) NOT NULL,
    entity_id INT NULL,
    details TEXT NULL,
    ip_address VARCHAR(45) NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL,
    INDEX idx_created (created_at),
    INDEX idx_user (user_id),
    INDEX idx_entity (entity_type, entity_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- جدول محاولات تسجيل الدخول
CREATE TABLE IF NOT EXISTS login_attempts (
    ip_address VARCHAR(45) PRIMARY KEY,
    attempts INT DEFAULT 0,
    locked_until DATETIME NULL,
    last_attempt DATETIME NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- جدول العيادات (منفصل عن المستشفيات)
CREATE TABLE IF NOT EXISTS clinics (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    governorate_id INT NOT NULL,
    phone VARCHAR(20) NOT NULL,
    sector VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (governorate_id) REFERENCES governorates(id) ON DELETE CASCADE
);
