"""
Jalankan sekali untuk inisialisasi database dan membuat akun admin.
Usage: python init_db.py
"""
from app import create_app
from extensions import db
from models import User, ModelInfo

app = create_app()

with app.app_context():
    # Buat semua tabel
    db.create_all()
    print('✅ Tabel berhasil dibuat.')

    # Buat akun admin jika belum ada
    admin = User.query.filter_by(email='admin@gmail.com').first()
    if not admin:
        admin = User(
            nama='Administrator',
            email='admin@gmail.com',
            role='admin',
            status='aktif'
        )
        admin.set_password('admin123')
        db.session.add(admin)
        db.session.commit()
        print('✅ Akun admin dibuat.')
        print('   Email   : admin@gmail.com')
        print('   Password: admin123')
    else:
        print('ℹ️  Akun admin sudah ada.')

    # Seed informasi model jika belum ada
    if ModelInfo.query.count() == 0:
        models = [
            ModelInfo(
                nama_model='IndoBERT',
                tipe='indobert',
                accuracy=76.63,
                precision=76.00,
                recall=77.00,
                f1_score=76.00,
                path_folder='models/indobert',
                is_default=True
            ),
            ModelInfo(
                nama_model='Naive Bayes',
                tipe='naive_bayes',
                accuracy=67.06,
                precision=66.00,
                recall=67.00,
                f1_score=67.00,
                path_folder='models/naive_bayes',
                is_default=False
            ),
        ]
        db.session.add_all(models)
        db.session.commit()
        print('✅ Informasi model berhasil ditambahkan.')
    else:
        print('ℹ️  Data model sudah ada.')

    print('\n🚀 Database siap digunakan!')
    print('   Jalankan: python app.py')
