CREATE DATABASE IF NOT EXISTS prayer_times CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE prayer_times;

CREATE TABLE IF NOT EXISTS countries (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name_ar VARCHAR(190) NOT NULL,
    name_en VARCHAR(190) NOT NULL,
    slug VARCHAR(190) NOT NULL UNIQUE,
    image VARCHAR(255) DEFAULT NULL,
    description_ar TEXT NULL,
    description_en TEXT NULL,
    meta_title_ar VARCHAR(255) DEFAULT NULL,
    meta_title_en VARCHAR(255) DEFAULT NULL,
    meta_description_ar TEXT NULL,
    meta_description_en TEXT NULL,
    faq_json JSON NULL,
    status TINYINT(1) NOT NULL DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS cities (
    id INT AUTO_INCREMENT PRIMARY KEY,
    country_id INT NOT NULL,
    name_ar VARCHAR(190) NOT NULL,
    name_en VARCHAR(190) NOT NULL,
    slug VARCHAR(190) NOT NULL,
    image VARCHAR(255) DEFAULT NULL,
    latitude DECIMAL(10,7) NOT NULL,
    longitude DECIMAL(10,7) NOT NULL,
    timezone VARCHAR(100) NOT NULL,
    description_ar TEXT NULL,
    description_en TEXT NULL,
    meta_title_ar VARCHAR(255) DEFAULT NULL,
    meta_title_en VARCHAR(255) DEFAULT NULL,
    meta_description_ar TEXT NULL,
    meta_description_en TEXT NULL,
    faq_json JSON NULL,
    status TINYINT(1) NOT NULL DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY city_slug_country_unique (country_id, slug),
    CONSTRAINT fk_cities_country FOREIGN KEY (country_id) REFERENCES countries(id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS settings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    `key` VARCHAR(190) NOT NULL UNIQUE,
    `value` TEXT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(190) NOT NULL,
    email VARCHAR(190) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    role VARCHAR(100) NOT NULL DEFAULT 'editor',
    status TINYINT(1) NOT NULL DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO countries (name_ar, name_en, slug, image, description_ar, description_en, meta_title_ar, meta_title_en, meta_description_ar, meta_description_en, faq_json, status)
VALUES
('مصر', 'Egypt', 'egypt', '/assets/img/egypt.jpg', 'مواقيت الصلاة في مدن مصر الرئيسية.', 'Prayer times for major cities in Egypt.', 'مواقيت الصلاة في مصر', 'Prayer Times in Egypt', 'مواقيت الصلاة اليوم في مصر مع القبلة والتاريخ الهجري.', 'Prayer times in Egypt with qibla and hijri date.', JSON_ARRAY(JSON_OBJECT('q','ما هي مواقيت الصلاة في مصر؟','a','يعرض الموقع التوقيت اليومي والشهري حسب المدينة.')), 1)
ON DUPLICATE KEY UPDATE slug = VALUES(slug);

INSERT INTO cities (country_id, name_ar, name_en, slug, image, latitude, longitude, timezone, description_ar, description_en, meta_title_ar, meta_title_en, meta_description_ar, meta_description_en, faq_json, status)
SELECT c.id, 'القاهرة', 'Cairo', 'cairo', '/assets/img/cairo.jpg', 30.0444000, 31.2357000, 'Africa/Cairo',
'مواقيت الصلاة اليوم في القاهرة مع التاريخ الهجري واتجاه القبلة.', 'Daily prayer times in Cairo with hijri date and qibla.',
'مواقيت الصلاة اليوم في القاهرة', 'Prayer Times Today in Cairo',
'تابع أذان الفجر والظهر والعصر والمغرب والعشاء في القاهرة.', 'Check Fajr, Dhuhr, Asr, Maghrib and Isha in Cairo.',
JSON_ARRAY(JSON_OBJECT('q','متى أذان المغرب في القاهرة؟','a','يعرض الموقع الوقت المحدث يومياً حسب طريقة الحساب المختارة.')), 1
FROM countries c WHERE c.slug = 'egypt'
ON DUPLICATE KEY UPDATE slug = VALUES(slug);

INSERT INTO cities (country_id, name_ar, name_en, slug, image, latitude, longitude, timezone, description_ar, description_en, meta_title_ar, meta_title_en, meta_description_ar, meta_description_en, faq_json, status)
SELECT c.id, 'الجيزة', 'Giza', 'giza', '/assets/img/giza.jpg', 30.0131000, 31.2089000, 'Africa/Cairo',
'مواقيت الصلاة اليوم في الجيزة.', 'Daily prayer times in Giza.',
'مواقيت الصلاة اليوم في الجيزة', 'Prayer Times Today in Giza',
'تعرف على موعد الأذان والصلاة القادمة في الجيزة.', 'See adhan times and next prayer in Giza.',
JSON_ARRAY(JSON_OBJECT('q','كم باقي على أذان الفجر في الجيزة؟','a','يوفر الموقع عداداً حيّاً للصلاة القادمة.')), 1
FROM countries c WHERE c.slug = 'egypt'
ON DUPLICATE KEY UPDATE slug = VALUES(slug);
