#!/usr/bin/env python from app import create_app, db from app.models import User, Printer import uuid def init_db(): app = create_app() with app.app_context(): # Create tables db.create_all() # Check if we already have an admin user admin = User.query.filter_by(role='admin').first() if not admin: # Create admin user admin = User( id=str(uuid.uuid4()), username='admin', display_name='Administrator', email='admin@example.com', role='admin' ) admin.set_password('admin123') # Default password, change in production! db.session.add(admin) print("Created admin user with username 'admin' and password 'admin123'") # Check if we have any printers printer_count = Printer.query.count() if printer_count == 0: # Create sample printers printers = [ Printer( name='Printer 1', description='3D Printer for general use', status=0 # OPERATIONAL ), Printer( name='Printer 2', description='High resolution printer for detailed work', status=0 # OPERATIONAL ), Printer( name='Printer 3', description='Large format printer for big projects', status=0 # OPERATIONAL ) ] db.session.add_all(printers) print("Created sample printers") db.session.commit() print("Database initialized successfully!") if __name__ == '__main__': init_db()