
#!/usr/bin/env python3
"""
Database Initialization Script for RateRight
Creates all tables with current schema from app models
"""

import os
import sys
from app import create_app
from app.extensions import db

def init_database():
    """Initialize database with all current models"""
    
    print("🗄️  Initializing RateRight Database...")
    print("=" * 50)
    
    # Create Flask app with proper config
    app = create_app()
    
    with app.app_context():
        # Drop all existing tables (fresh start)
        print("   🔥 Dropping existing tables...")
        db.drop_all()
        
        # Create all tables from current models
        print("   🏗️  Creating tables from current models...")
        db.create_all()
        
        print("\n✅ Database initialized successfully!")
        print("   📁 Database file: rateright.db")
        
        # Show created tables with column details
        from sqlalchemy import inspect
        inspector = inspect(db.engine)
        tables = inspector.get_table_names()
        
        print(f"\n📊 Created {len(tables)} tables:")
        for table in sorted(tables):
            columns = inspector.get_columns(table)
            print(f"   📋 {table}: {len(columns)} columns")
            
            # Show key columns for users table
            if table == 'users':
                print("      Key WHS/Compliance columns:")
                whs_columns = [col['name'] for col in columns if any(term in col['name'].lower() 
                             for term in ['white_card', 'worker_control', 'insurance', 'abn'])]
                for col in whs_columns:
                    print(f"         ✓ {col}")
        
        print("\n🎉 Database ready for testing!")

if __name__ == "__main__":
    init_database()
