import sys
import os

sys.stdout.reconfigure(encoding='utf-8')

PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, PROJECT_PATH)

from app import (
    app, db, init_db, 
    update_all_seo_pages, 
    generate_sitemap, 
    update_seo_globally, 
    start_scheduler, 
    KeywordBank,
    SEOPage  # <-- این رو اضافه کن
)

print('='*60)
print('🚀 در حال راه‌اندازی سایت (passenger_wsgi)...')
print('='*60)

with app.app_context():
    try:
        print('📦 مرحله 1: ایجاد جداول دیتابیس...')
        db.create_all()
        print('✅ جداول ایجاد شدند.')
        
        print('📦 مرحله 2: مقداردهی اولیه دیتابیس...')
        init_db()
        print('✅ دیتابیس مقداردهی شد.')
        
        print('📦 مرحله 3: هدف‌گذاری کلمات کلیدی...')
        count = KeywordBank.query.filter_by(is_active=True).update({'is_targeted': True})
        db.session.commit()
        print(f'✅ {count} کلمه هدف‌گذاری شد.')
        
        print('📦 مرحله 4: تولید صفحات سئو...')
        seo_count = update_all_seo_pages()
        print(f'✅ {seo_count} صفحه سئو تولید شد.')
        
        print('📦 مرحله 5: تولید سایتمپ...')
        sitemap_count = generate_sitemap()
        print(f'✅ {sitemap_count} URL در سایتمپ ثبت شد.')
        
        print('📦 مرحله 6: بروزرسانی تنظیمات سئو...')
        update_seo_globally()
        print('✅ تنظیمات سئو بروزرسانی شد.')
        
        total_keywords = KeywordBank.query.filter_by(is_active=True).count()
        targeted_keywords = KeywordBank.query.filter_by(is_active=True, is_targeted=True).count()
        seo_pages_count = SEOPage.query.filter_by(is_active=True).count()
        
        print('='*60)
        print('📊 آمار نهایی:')
        print(f'   🔑 {total_keywords} کلمه کلیدی فعال')
        print(f'   🎯 {targeted_keywords} کلمه هدف‌گذاری شده')
        print(f'   📄 {seo_pages_count} صفحه سئو')
        print(f'   🗺️ {sitemap_count} URL در سایتمپ')
        print('='*60)
        
    except Exception as e:
        print(f'❌ خطا: {e}')
        import traceback
        traceback.print_exc()

# ===== Scheduler =====
try:
    start_scheduler()
    print('✅ بروزرسانی خودکار سئو فعال شد.')
except Exception as e:
    print(f'❌ خطا در Scheduler: {e}')

print('='*60)
print('🚀 سایت با موفقیت راه‌اندازی شد!')
print('='*60)

application = app