"""Initialize database with admin user and default categories."""
import sys, os
sys.path.insert(0, os.path.dirname(__file__))

from database import engine, SessionLocal, Base
from models import User, Category, SiteSettings

def init():
    Base.metadata.create_all(bind=engine)
    db = SessionLocal()

    # Admin user
    if not db.query(User).filter_by(username="admin").first():
        admin = User(
            username="admin", email="admin@dabaywa.sd",
            display_name="Admin", display_name_ar="مدير",
            role="admin",
        )
        admin.set_password("admin123")
        db.add(admin)
        print("Created admin user (admin / admin123)")

    # Default categories
    categories = [
        ("Political News", "أخبار سياسية", "political-news", "#c70000", 1),
        ("Local News", "أخبار محلية", "local-news", "#005689", 2),
        ("International News", "أخبار دولية", "international-news", "#7d0068", 3),
        ("Economic News", "أخبار اقتصادية", "economic-news", "#185717", 4),
        ("Sports News", "أخبار رياضية", "sports-news", "#0084c6", 5),
        ("Reports & Investigation", "تقارير وتحقيقات", "reports-investigation", "#bb3b80", 6),
        ("Opinion", "رأي", "opinion", "#e05e00", 7),
        ("Culture and Arts", "ثقافة وفنون", "culture-arts", "#6b5840", 8),
        ("Health & Wellness", "صحة وعافية", "health-wellness", "#2e8b57", 9),
        ("Technology", "تكنولوجيا", "technology", "#4a90d9", 10),
        ("Podcast", "بودكاست", "podcast", "#8c4fff", 11),
        ("Video", "فيديو", "video", "#d32f2f", 12),
        ("Miscellaneous", "منوعات", "miscellaneous", "#607d8b", 13),
    ]
    for name_en, name_ar, slug, color, order in categories:
        if not db.query(Category).filter_by(slug=slug).first():
            db.add(Category(
                name_en=name_en, name_ar=name_ar, slug=slug,
                color=color, order=order, is_active=True,
            ))
            print(f"Created category: {name_en}")

    # Default settings
    defaults = {
        "site_name": "Dabaywa Sudan",
        "site_description": "Eastern Sudan News",
        "header_logo": "/static/images/logo.jpeg",
        "footer_logo": "/static/images/logo.jpeg",
        "header_logo_height": "50",
        "footer_logo_height": "40",
        "whatsapp_number": "00251977090188",
    }
    for key, value in defaults.items():
        if not db.query(SiteSettings).filter_by(key=key).first():
            db.add(SiteSettings(key=key, value=value))

    db.commit()
    db.close()
    print("Database initialized successfully!")

if __name__ == "__main__":
    init()
