import os import json from app.database import engine, SessionLocal, Base from app.models import Question, AdminUser from app.auth import hash_password from app.seed_40 import seed_40_questions from app.seed_lore_pack import seed_lore_pack def seed_db(): Base.metadata.create_all(bind=engine) db = SessionLocal() try: # 1. Admin User admin_user = os.getenv("ADMIN_USER", "admin") admin_pass = os.getenv("ADMIN_PASS", "Alohomora2026!") existing_admin = db.query(AdminUser).filter(AdminUser.username == admin_user).first() if not existing_admin: db.add(AdminUser( username=admin_user, password_hash=hash_password(admin_pass) )) db.commit() print(f"Created default admin user: {admin_user}") # 2. Seed 40 questions if database is empty question_count = db.query(Question).count() if question_count == 0: print("Question table is empty, seeding 40 initial bilingual questions...") seed_40_questions() # 3. Ensure Lore Pack (Books, Movies, Hard Creatures incl. Blast-Ended Skrewts) is present seed_lore_pack() finally: db.close() if __name__ == "__main__": seed_db()