from bam import db, bcrypt
from bam.models import User, Book


def main():
    # Create databases
    db.create_all()

    if input("Populate db with test data? [Y/n] ").lower == "n":
        return

    users = [
        ["bookmaster", "bookmaster@example.com", "masterofbooks", "user"],
        ["root", "root@example.com", "toor", "admin"],
        ["Jake", "jake@example.com", "justin", "user"],
        ["Anuj", "anuj@example.com", "youcan'tguessme", "admin"],
    ]

    books = [
        ["Harry Potter", "JK Rowling", None, "400", 3],
        ["Lord of the Rings", "JRR Tolkien", None, "700.50", 2],
        ["Artemis Fowl", "Eoin Colfer", None, "356", 1],
        ["Percy Jackson", "Rick Riordan", None, "499", 3],
        ["The Thief Lord", "Cornelia Funke", None, "375.25", 1],
        ["Sherlock Holmes", "Arthur Conan Doyle", None, "800", 3],
    ]

    for username, email, passwd, role in users:
        db.session.add(
            User(
                username=username,
                email=email,
                password=bcrypt.generate_password_hash(passwd).decode("utf-8"),
                role=role,
            )
        )
    for title, author, isbn, price, user_id in books:
        db.session.add(
            Book(title=title, author=author, isbn=isbn, price=price, user_id=user_id)
        )
    db.session.commit()


if __name__ == "__main__":
    main()