"""
طبقة قاعدة البيانة (SQLite) — تهيئة، اتصال، وبيانات أولية.
"""
import os
import sqlite3

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DB_PATH = os.path.join(BASE_DIR, "store.db")
SCHEMA_PATH = os.path.join(BASE_DIR, "schema.sql")


def get_db():
    """اتصال جديد مع صفوف على شكل قواميس."""
    conn = sqlite3.connect(DB_PATH)
    conn.row_factory = sqlite3.Row
    conn.execute("PRAGMA foreign_keys = ON")
    return conn


DEFAULT_SETTINGS = {
    "brand": "رقميّات",
    "tagline": "متجرك للمنتجات الرقمية الاحترافية",
    "whatsapp": "213600000000",
    "currency": "د.ج",
    "hero_title": "منتجات رقمية تصنع الفرق",
    "hero_subtitle": "قوالب، أدوات، ودورات جاهزة للتحميل الفوري — جودة عالية وتسليم لحظي.",
}

SEED_PRODUCTS = [
    ("قالب موقع شركات احترافي", "قوالب", 4500, 7000, 4.9, 1, "الأكثر مبيعاً", "🖥️", "قالب HTML متجاوب وحديث جاهز للتخصيص بسهولة."),
    ("حزمة أيقونات Premium", "تصاميم", 1800, 2500, 4.7, 1, "جديد", "🎨", "أكثر من 2000 أيقونة متجهة بصيغ SVG و PNG."),
    ("دورة تعلّم تصميم UI/UX", "دورات", 6000, 9000, 5.0, 1, "مميّز", "🎓", "أكثر من 12 ساعة فيديو + ملفات تطبيقية."),
    ("إضافة تحسين متاجر إلكترونية", "أدوات", 3200, 0, 4.6, 0, "", "⚙️", "حسّن سرعة وتحويلات متجرك بنقرة واحدة."),
    ("مكتبة موسيقى خالية الحقوق", "صوتيات", 2200, 3000, 4.8, 1, "عرض", "🎧", "100 مقطع صوتي عالي الجودة للمونتاج."),
    ("قوالب عروض تقديمية", "قوالب", 1500, 0, 4.5, 0, "", "📊", "50 شريحة احترافية قابلة للتعديل."),
]

SEED_SERVICES = [
    ("تصميم هوية بصرية", "✨", "شعار + ألوان + خطوط بهوية متكاملة لعلامتك."),
    ("تطوير مواقع ومتاجر", "🚀", "مواقع سريعة ومتجاوبة جاهزة للنمو."),
    ("تسويق رقمي", "📈", "حملات إعلانية وإدارة محتوى تزيد مبيعاتك."),
    ("دعم فني 24/7", "🛟", "فريق دعم متواجد لمساعدتك في أي وقت."),
]


def init_db():
    """ينشئ الجداول ويزرع البيانات الأولية إن كانت فارغة."""
    conn = get_db()
    with open(SCHEMA_PATH, "r", encoding="utf-8") as f:
        conn.executescript(f.read())

    # إعدادات
    for k, v in DEFAULT_SETTINGS.items():
        conn.execute(
            "INSERT OR IGNORE INTO settings(key, value) VALUES (?, ?)", (k, v)
        )

    # منتجات
    if conn.execute("SELECT COUNT(*) c FROM products").fetchone()["c"] == 0:
        conn.executemany(
            "INSERT INTO products(name,category,price,old_price,rating,featured,badge,emoji,description)"
            " VALUES (?,?,?,?,?,?,?,?,?)",
            SEED_PRODUCTS,
        )

    # خدمات
    if conn.execute("SELECT COUNT(*) c FROM services").fetchone()["c"] == 0:
        conn.executemany(
            "INSERT INTO services(title,emoji,description) VALUES (?,?,?)",
            SEED_SERVICES,
        )

    conn.commit()
    conn.close()


if __name__ == "__main__":
    init_db()
    print("✅ تم تهيئة قاعدة البيانات:", DB_PATH)
