from app import app, db
from models import User
from werkzeug.security import generate_password_hash

def init_db():
    with app.app_context():
        print("Dropping all tables...")
        db.drop_all()
        
        print("Creating all tables...")
        db.create_all()
        
        print("Creating admin user...")
        admin = User(
            username='admin',
            password=generate_password_hash('adminpass'),
            is_admin=True,
            role='admin', # Assignation du rôle
            gallery_id=None # L'admin n'a pas de galerie
        )
        db.session.add(admin)
        
        print("Creating gallery managers...")
        # Par défaut, le premier utilisateur de chaque galerie est un manager
        for i in range(1, 6):
            gallery_manager = User(
                username=f'gallery{i}_manager', # Nom d'utilisateur plus clair
                password=generate_password_hash('pass'),
                is_admin=False,
                gallery_id=i,
                role='manager' # Assignation du rôle
            )
            db.session.add(gallery_manager)
            print(f"Added gallery{i}_manager")
        
        print("Committing changes...")
        db.session.commit()
        print("Database initialization complete!")

if __name__ == '__main__':
    init_db()