"""Seed demo user for authentication testing.""" import os from sqlalchemy.orm import Session from app.database import SessionLocal, Base, engine from app.models import User from app.auth import hash_password # Create tables Base.metadata.create_all(bind=engine) # Get demo credentials from environment DEMO_EMAIL = os.getenv("DEMO_EMAIL", "demo@example.com") DEMO_PASSWORD = os.getenv("DEMO_PASSWORD", "demo123") DEMO_USERNAME = "demo" def seed_demo_user(): """Create demo user idempotently.""" db: Session = SessionLocal() try: # Check if demo user already exists existing_user = db.query(User).filter(User.username == DEMO_USERNAME).first() if existing_user: # Update password if it exists existing_user.hashed_password = hash_password(DEMO_PASSWORD) db.commit() print(f"Updated demo user: {DEMO_USERNAME}") else: # Create new demo user demo_user = User( username=DEMO_USERNAME, email=DEMO_EMAIL, hashed_password=hash_password(DEMO_PASSWORD) ) db.add(demo_user) db.commit() print(f"Created demo user: {DEMO_USERNAME}") finally: db.close() if __name__ == "__main__": seed_demo_user()